0

36 個のプロジェクトでソリューションをビルドする TFS ビルド構成があります。「テスト」、「WPF」、「WinRT」など、さまざまなプラットフォームに分類されます。次の構造でドロップ場所を構成する必要があります。

/Solution
    /Tests
        /Project1.dll
        /Project2.dll
        /Project3.dll
    /WPF
        /Project4.dll
        /Project5.dll
        /Project6.exe
    /WinRT
        /Project7.dll
        /Project8.dll
        /Project9.exe

プロジェクトごとにカスタム出力ディレクトリをセットアップし、特定のプラットフォームのすべてのプロジェクトで同じディレクトリを共有しようとしましたが、これらのプロジェクトの 2 つがビルド ディレクトリに共有依存関係をコピーすると、ビルドが失敗します。2 つの MSBuild インスタンスが同時にファイルのコピーを試行できるため、そのうちの 1 つがアクセス拒否エラーをトリガーする可能性があります。これは、他のインスタンスがまだファイルを書き込んでいるためです。

別のビルドとドロップの場所の構造を持つことができれば、ビルド ディレクトリのデフォルトの構造を維持し、ドロップ プロセスで最終的なファイルをコピーし、重複した依存関係をスキップするだけにできます。ビルド場所とは異なる構造のドロップ場所をカスタマイズする方法はありますか? どうすればそのような設定を実現できますか?

4

2 に答える 2

2

デフォルトの TFS ビルドでは、すべての出力が 1 つのディレクトリにまとめられます。

私が通常行うことは、その 1 つの大きなディレクトリ内のすべてのファイルを必要なフォルダー構造に移動する PowerShell スクリプトを作成することです。そのスクリプトを TFS にチェックインし、TFS ビルドをカスタマイズして、最後のステップとしてその PowerShell スクリプトを実行します ($(SourcesDirectory)\Binaries -> $(BuildDropDirectory) からフォルダーをコピーする直前)。

于 2013-05-23T16:16:44.093 に答える
1

カスタム出力ディレクトリについては、こちらのディスカッションをご覧ください。HTH

于 2013-05-23T05:48:50.957 に答える