実際の BuildDropLocation は、ネットワーク共有で利用できる必要があります。ドロップ場所は、テスト結果を公開するときに、クライアントと TFS アプリケーション層によって使用されます。また、ビルド結果にアクセスするときに、クライアントと TFS アプリケーション層マシンの両方からアクセスできる必要があります。データ ウェアハウスの手順の一部として、TFS アプリケーション層マシンは、ドロップ場所を介してビルド結果にアクセスし、ウェアハウスに追加するテスト結果ファイルを見つけます。
つまり、ビルド サーバーがドロップ ロケーション共有をホストしているマシンと同じであり、常に同じマシンであると仮定すると、TFSBuild.proj からのドロップ ステップをスキップできます。1 つの解決策は、おそらくToddとChadによって概説されたものの組み合わせ、つまり次のようなものです。
<SkipDropBuild>true</SkipDropBuild>
<Target Name ="AfterDropBuild">
<Exec Command="move $(BinariesRoot)\Release d:\BuildOutput\$(BuildNumber)\Release"/>
</Target>
「リリース」部分を実際にハードコーディングする必要はありませんが、構成プロパティからそれを取得できることに注意してください。デスクに戻ったら調べて、それに応じてこの回答を編集します。
そうは言っても、これを行うにはかなりのリスクが伴います。
- すべてのファイル パスが正確に並んでいることを確認する必要があります。そうしないと、ビルド ログを表示したり、TFS ウェアハウスにテスト結果を入力したりすることが機能しなくなる可能性があります。
- 常に同じマシン上に存在するように、ビルドとドロップの場所をハードコーディングします。誰かが別のマシンで TFSBuild.proj ファイルをビルドしようとすると、期待どおりに動作しません。
- 誰かがビルド定義でドロップ場所のプロパティを編集する場合、TFSBuild.proj ファイルで対応する編集を行う必要があります。
したがって、このアプローチには保守性の問題があるため、ほとんどの場合はお勧めしません。テストを行って、これが実際にどのくらいの時間を節約できるかを確認して、自分の状況で最適化する価値があるかどうかを判断する価値があります.