我正在将NuGet引入到我们的软件开发过程中,既用于外部二进制文件(例如Moq,NUnit),也用于包含共享功能的内部库项目。项目引用v NuGet依赖关系
TeamCity正在从我们的内部库项目生成NuGet包,并将它们发布到本地存储库。我修改的解决方案文件使用本地存储库访问NuGet包。
考虑下面的源代码解决方案:
- Company.Interfaces.sln建立Company.Interfaces.1.2.3.7654.nupkg。
- Company.Common.sln含有经由其NuGet包的引用Company.Interfaces,并建立Company.Common.1.1.1.7655.nupkg,与Company.Interfaces.1.2.3.7654包括作为依赖性。
- Company.DataAccess.sln使用Company.Common nupkg添加 Company.Interfaces和Company.Common作为参考。它建立了 Company.DataAccess.1.0.8.7660.nupkg,包括Company.Common.1.1.1.7655作为相关组件。
- Company.Product.A是一个网站解决方案,它包含对所有三个库项目的引用(通过选择 Company.DataAccess NuGet包添加)。
问题:
如果有一个源代码改变Company.Interfaces,我总是需要重新编号并重建中间包(Company.Common和Company.DataAccess)和更新包在Company.Product.A?
或者不依赖于是否源代码改变是
- 一个bug修复,或
- 一个新的功能,或
- 重大更改?
实际上,我有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文件),并继续链,直到叶项目。 –