我正在将 NuGet 引入我们的软件开发流程,既适用于外部二进制文件(例如 Moq、NUnit),也适用于包含共享功能的内部库项目。
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 中的包?
还是这取决于源代码更改是否
- 错误修复,或
- 新功能,或
- 一个突破性的变化?
实际上,我有 8 个级别的依赖库包。是否有用于更新整个包树的工具支持,是否有必要?
我知道语义版本控制。
我们正在使用 VS2012、C#4.0、TeamCity 7.1.5。