1

別のチーム プロジェクトに存在するクラス ライブラリ プロジェクトを参照する Web アプリケーション プロジェクトを TFS 2012 でビルドするのに問題があります。

ソース管理でプロジェクトがどのように見えるかを次に示します。

- $/
  - TP1
    - Development
      - Source
        - WebAppProject
  - TP2
    - Development
      - Source
        - ClassLibraryProject1

この例では、この構造を単純化しました。各チーム プロジェクトには、他のソリューションとプロジェクトがあります。TP2だけでなく、他のプロジェクトで使用されることを意図したコードが に含まれていると仮定しますTP1

を含むソリューションには、WebAppProjectも含まれますClassLibraryProject1Add Existing ProjectTP1を使用して追加されました。にも へのプロジェクト参照があります。WebAppProjectClassLibraryProject1

TP1とにまたがるプロジェクトを構築するチーム ビルドに取り組んでいますTP2。でビルド定義を作成TP2し、次のワークスペースをセットアップしました。

  • $/TP1/Development ビルド エージェント フォルダーが $(SourceDir)\TP1\Development に設定されます
  • $/TP2/Development ビルド エージェント フォルダーが $(SourceDir) に設定されます

TFS はビルドできずWebAppProject、エラーは実際には理にかなっています...

ClassLibraryProject1TFS は、 からのプロジェクト参照を使用して への参照を解決しようとしていWebAppProjectます。例:..\..\..\TP2\Development\Source\ClassLibrary1ただし、そのパスは明らかにビルド サーバーには存在しません。

これを行うより良い方法はありますか?

ありがとうございました!

4

1 に答える 1

1

これを行う最善の方法は、NuGet などのアーティファクト リポジトリ (スケールの高度なエンド)、または一般的にアクセス可能なネットワーク フォルダー (スケールの非常に基本的なエンド) をセットアップすることです。

別のビルド ジョブ/プロセスを使用して、共有ライブラリをビルドし、アーティファクト リポジトリに出力します。

アーティファクト リポジトリと「最新のものを取得」する何らかのメカニズムを介してプロジェクトを使用する際に参照します (たとえば、NuGet の場合は NuGet get、共有ネットワーク ディレクトリの場合は xcopy/robocopy バッチ スクリプト)。

共有プロジェクトをソリューションに直接追加すると、誰かが誤ってまたは無意識のうちにソリューション内から共有プロジェクトに変更を加えた場合など、簡単に苦痛の世界につながる可能性があります。

于 2012-12-04T21:53:55.277 に答える