我正在将NuGet引入我们的软件开发过程,包括外部二进制文件(例如Moq,NUnit)和包含共享功能的内部库项目。
TeamCity正在从我们的内部库项目生成NuGet包,并将它们发布到本地存储库。我修改的解决方案文件使用本地存储库来访问NuGet包。
考虑以下源代码解决方案:
问题:
如果对Company.Interfaces的源代码更改,是否始终需要重新编号和重建中间包(Company.Common和Company.DataAccess)并更新Company.Product.A中的包?
或者这取决于源代码是否改变
实际上,我有8级依赖库包。如果有必要,是否有更新整个软件包树的工具支持?
我知道语义版本。
我们正在使用VS2012,C#4.0,TeamCity 7.1.5。
答案 0 :(得分:3)
最好在每次登记时更新所有内容,以便及早进行测试。
使用工件依赖项(http://confluence.jetbrains.com/display/TCD7/Artifact+Dependencies)和“Finish Build”构建触发器(甚至只是“Nuget Dependency Trigger”)可以轻松管理您所描述的内容。
答案 1 :(得分:1)
我们在基础项目上编写了自己的构建配置(在本例中为 Company.Interfaces.sln ),它可以一次构建和更新整个树。它会检查更新的packages.config文件和.nuspec文件。我不能说这最终为我们节省了多少时间,即使它在开始时听起来有些过分。
需要注意的一点是:我们编写的脚本会检查文件,即使链条在两者之间出现故障,也可以让我们在本地计算机上修复它,检查修复程序并重新启动发布。 / p>