外部のバイナリ(Moq、NUnitなど)と共有機能を含む内部ライブラリプロジェクトの両方で、ソフトウェア開発プロセスにNuGetを導入しています。プロジェクトの参考資料v NuGetの依存関係
TeamCityは、私たちの内部ライブラリプロジェクトからNuGetパッケージを生成し、それらをローカルリポジトリに公開しています。変更されたソリューションファイルは、NuGetパッケージにアクセスするためにローカルリポジトリを使用します。
次のソースコードのソリューションを検討します。
- Company.Interfaces.slnはCompany.Interfaces.1.2.3.7654.nupkgを構築します。
- Company.Common.slnはNuGetパッケージを介しCompany.Interfacesへの参照が含まれ、そしてCompany.Interfaces.1.2.3.7654が依存として含まれると、Company.Common.1.1.1.7655.nupkgを構築します。
- Company.DataAccess.slnは、Company.Common nupkgを使用して Company.InterfacesおよびCompany.Commonを参照として追加します。これは、従属コンポーネントとしてCompany.Common.1.1.1.7655を含む Company.DataAccess.1.0.8.7660.nupkgを構築します。
- Company.Product.Aは、すべての3つのライブラリプロジェクト( Company.DataAccess NuGetパッケージを選択して追加)を参照するWebサイトソリューションです。
質問:
Company.Interfacesにソースコードの変更がある場合は、私はいつも、パッケージの番号を変更し、中間パッケージ(Company.CommonとCompany.DataAccess)を再構築し、更新する必要がありません会社。製品.A?
やソースコードの変更は、バグ修正、または
- であったかどうかに依存していますか?
実際には、8レベルの依存ライブラリパッケージがあります。パッケージのツリー全体を更新するためのツールサポートが必要ですか?
私はセマンティックバージョン管理について知っています。
VS2012、C#4.0、TeamCity 7.1.5を使用しています。
このような意味ですか? http://candordeveloper.com/2012/12/12/nuget-package-build-a-solution-of-projects/ –
私たちのNuSpecファイルは残念ながら手作業で編集されていますが、自動バージョン置換用のマクロがいくつかあります。私が意味することは、依存ビルド構成を自動的に起動し、NuGetパッケージを更新し、結果の変更(通常は.csprojとpackages.configファイル)をチェックインし、リーフプロジェクトまでチェーンを続行するという形になります。 –