TFS 2010 (ビルド サーバー) のビルド タスクに使用しているソリューションがあります。
ほとんどのプロジェクトは同じ場所に配置されても問題ありません。唯一の違いは、いくつかの動的にロードされるプラグインであり、他のアセンブリに関連する /Plugins サブフォルダーに配置する必要があります。
1) DefaultTemplate.xaml を変更するなど、いくつかのことを試しましたが、(.sln ファイルのみを指定したため) プロジェクトごとのレベルで出力パスを区別できないことがわかりました。(ワークフローには、serverBuildProjectItem 変数を使用した「For Each Project in BuildSettings.ProjectsToBuild」があります。これは、プロジェクトとして .sln ファイルを使用して一度だけ呼び出されます。) したがって、これはプロジェクトごとに区別するために機能しません。基本。
2)私が試したもう1つのことは、解決策としてどこかにあるようにOutputPathを指定することでした。
<OutputPath Condition=" '$(CommonOutputPath)'=='' ">../myOutDir/Plugins/</OutputPath>
<OutputPath Condition=" '$(CommonOutputPath)'!='' ">$(CommonOutputPath)Plugins\</OutputPath>
これにより、すべてのアセンブリがサーバー ビルド用の同じフォルダーにも残るため、機能しません。
3) ビルド後のイベントの作成を開始して、ファイルを正しい場所に手動でコピーしましたが、これまでのところ、サーバー ケースとローカル ケースを区別できませんでした。(これはここでは機能しません。)
<PropertyGroup Condition=" ' $(TeamBuildConstants) ' == ' '>
<PostBuildEvent>mkdir $(SolutionDir)..\out\$(OutDir)plugins
copy $(TargetPath) $(SolutionDir)..\out\$(OutDir)plugins
</PropertyGroup>
<PropertyGroup Condition=" ' $(TeamBuildConstants) ' == '_TEAM_BUILD_ '>
echo figure out some copying for this once the condition gets hit..
<PostBuildEvent></PostBuildEvent>
</PropertyGroup>
プロジェクト ファイルを変更するか、ビルド ワークフローを構成してこれを機能させるにはどうすればよいですか? (その後、ローカルでもサーバー ビルドでも動作するはずです。)
私が欲しいもの: すべての標準アセンブリを同じフォルダーに入れ、すべてのプラグイン プロジェクトを ./Plugins/ サブフォルダーに入れますか? (ローカルで、プロジェクト ファイルを基準にして (デフォルト?)、指定されたドロップ場所を基準にして tfs-build を作成)