構築/保守する製品の数が多いため、かなり複雑なdll構造(> 100アセンブリ)があります。現在、TFS 2012をインストール中です。現在、NuGetを使用して外部dllへの参照を管理しています。
Nugetは、内部dllを管理するための答えになる可能性があるようです。
これが私たちの構造のサンプルです:
- Framework.dll
- Business.dll
- 参照:Framework.dll
- Business.X.dll
- 参照:Framework.dll
- 参照:Business.dll
- Application.X.dll
- 参照:Framework.dll
- 参照:Business.X.dll
- 参照:Business.dll
NuGetでこれを実現するために、アセンブリごとにnuget仕様/パッケージを作成しました。各パッケージには、依存するパッケージが含まれます。
- Framework.1.0.nupkg
- Business.1.0.nupkg
- 依存:フレームワーク
- Business.X.1.0.nupkg
- 依存するもの:フレームワーク、ビジネス
- Application.X.1.0.nupkg
- 依存するもの:Framework、Business、Business.X
1)Framework VSプロジェクトを作成してビルドし、Framework.1.0.nupkgにパッケージ化しました。2)Business VSプロジェクトを開き、Framework.1.0.nupkgをインストールしてFramework.dllへの参照を追加しました。3)次にビルドしました。 Business VSプロジェクトをBusiness.1.0.nupkgとしてパッケージ化しました。4)アセンブリごとにこのプロセスを繰り返しました(参考までに、NuGetterを使用してこれを自動化しました)
ローカル開発者マシンとビルドサーバーの違いを調整するのに問題があります。
これが私の理解です:
- NuGetのパッケージ復元機能があるため、最終的なアセンブリをTFSに保存する必要はありません。
- アセンブリを参照する代わりに、NuGetを使用して参照が追加されます。たとえば、Business VSプロジェクトでは、フレームワークアセンブリはNugetFramework.1.0パッケージから追加されます。
ただし、これにより、アセンブリ開発者が新しい機能を構築/テストすることが困難になります。BusinessおよびBusiness.Xアセンブリで作業している開発者は、参照を削除/再読み込みせずに、ローカルで(自分のマシンで)機能をテストする方法を教えてください。Business.Xは、ローカルで構築されたBusiness.dllではなく、パッケージ化されたBusinessを参照するため、これが必要です。
私の目標:
- ビルドサーバーを使用して、バージョン管理された共有アセンブリを作成します
- コンシューマーアプリケーションがこれらのアセンブリへの参照を追加できるようにする
- 共有アセンブリの開発者がサーバービルドを要求する前にローカルで簡単にコンパイル/テストできるようにする
Nugetは#1と#2でうまく機能すると思いますが、#3を達成できないようです。これを行うためのより良い方法はありますか?
情報/ポインタをありがとう!