あなたは、単にあなたのメインのプロジェクトファイルにimport
を追加することにより、任意の外部のプロジェクトまたはターゲットファイルを参照することができます。
...
<!-- this is the default import for (c#) web project files -->
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />
<!-- import your custom project/target file here -->
<Import Project="MyCustom.targets" Condition="Exists('MyCustom.targets')" />
...
カスタムプロジェクト/ターゲットファイルがある場合でも、あなたの主なプロジェクトをビルドすることができますCondition
を追加しますビルドは異なる環境で実行されるため、行方不明です。
私はローカルマシン上でFxCopおよびStyleCopターゲットを実行するのにこの方法を使用していますが、ステージング環境に変更を加えずに同じメインプロジェクトファイルを構築できます。
更新
コメントは、あなたが実際に他の方法でラウンドを動作するはず解決のためではなく探していることを示唆している
:あなたが前に、プロジェクトを変更することなく、あなたのプロジェクトをビルドした後、いくつかのステップを実行したいです構成そのもの。
この場合、Webプロジェクトのビルドを呼び出すカスタムプロジェクトを作成することをお勧めします。これは、このような何かを見ることができる:
<Project DefaultTargets="MyTargetAfterBuild">
<!-- some Project attributes omitted for readability -->
<Target Name="MyTargetBeforeBuild" ContinueOnError="false">
<Exec Command="svn export" />
</Target>
<Target Name="Build" DependsOnTargets="MyTargetBeforeBuild">
<MSBuild Projects="MyWebProject.csproj" Targets="Build" Properties="Configuration=Release" >
</MSBuild>
</Target>
<Target Name="MyTargetAfterBuild" DependsOnTargets="Build">
<Exec Command="powershell.exe .\MyCustomScript.ps1" />
</Target>
</Project>
あなたはより詳細な例でthis answer on a similar scenarioに興味があるかもしれません。
外部MSBuildファイルを実行する[MSBuildタスク]の複製が可能です。(http://stackoverflow.com/questions/1501930/msbuild-task-to-execute-an-external-msbuild-file) –