0

現在、2 つの TFS ビルドの問題に悩まされています。

問題 1: 別のプロジェクトの dll 製品を別のソリューションで参照するプロジェクトのソリューションがあります。ビルド エージェントにはこれらの dll が含まれていないようで、ビルドは失敗します。

問題 2: 別のソリューションのプロジェクトを参照するソリューションがあります。ビルド エージェントに外部参照プロジェクトが含まれていないようで、ビルドが失敗します。

「ディレクトリのコピー」ビルド アクティビティを見てきましたが、それをどこにシムするか、またはソースおよび出力値として何を配置するかがわかりません。

4

2 に答える 2

2

ベスト プラクティスは、プロジェクト参照を使用して、同じソリューション内の他のプロジェクトを参照することです。ソリューションの外部にある参照については、ファイル参照を使用してから、参照されているコンパイル済み DLL をチェックインする必要があります。

Solution1
  \Project1  --> Project1.dll
  \Project2  --> Project2.dll

Solution2
  \ProjectA (references Project1.dll)
  \ProjectB (references Project2.dll)
  \References
      \Project1.dll -- this DLL gets checked in here and ProjectA references from here
      \Project2.dll -- this DLL gets checked in here and ProjectB references from here

ProjectA.csproj

<Reference Include="Project1.dll, Version=blah blah blah">
   <HintPath>..\References\Project1.dll</HintPath>
</Reference>

ProjectB.csproj

<Reference Include="Project2.dll, Version=blah blah blah">
   <HintPath>..\References\Project2.dll</HintPath>
</Reference>

このアプローチでは、Solution1 をビルドし、ドロップされた DLL を取得して、Solution2 の References フォルダーにチェックインする必要があります。Solution1 のビルドで、Solution2\References フォルダーを自動的にチェックアウトし、Project1 と Project2 の DLL をビルドの最新の DLL に置き換えてから、チェックインするいくつかのロジックを本当に凝ってセットアップすることができます。継続的インテグレーションを使用すると、Solution2 のビルドが開始されます。

于 2013-07-17T19:54:16.693 に答える
0

TFS 2012 / TFS2010 ビルド テンプレートを使用している場合は、[ソリューション固有のビルド出力] プロパティが false に設定されていることを確認してください。これにより、ビルド エージェントがすべてのアセンブリを同じ bin ディレクトリにビルドすることが保証されます。

于 2013-10-07T14:48:04.480 に答える