Reference 项目引用v NuGet依赖项

Reference 项目引用v NuGet依赖项,reference,dependencies,teamcity,nuget,Reference,Dependencies,Teamcity,Nuget,我正在将NuGet引入我们的软件开发过程中,包括外部二进制文件(如Moq、NUnit)和包含共享功能的内部库项目 TeamCity正在从我们的内部库项目生成NuGet包,并将其发布到本地存储库。我修改的解决方案文件使用本地存储库访问NuGet包 考虑以下源代码解决方案: Company.Interfaces.sln构建Company.Interfaces.1.2.3.7654.nupkg Company.Common.sln通过其NuGet包包含对Company.Interfaces的引用,并构

我正在将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.7655.nupkg,其中Company.Interfaces.1.2.3.7654包含为依赖项
  • Company.DataAccess.sln使用Company.Common numpkg添加 公司。接口和公司。作为参考通用。它建立 Company.DataAccess.1.0.8.7660.nupkg,包括Company.Common.1.1.1.7655作为从属组件
  • Company.Product.A是一个网站解决方案,包含对所有三个库项目的引用(通过选择 Company.DataAccess numget包) 问题:

    如果Company.Interfaces的源代码发生更改,我是否总是需要重新编号和重建中间包(Company.Common和Company.DataAccess),并更新Company.Product.a中的包

    或者这取决于源代码更改是否正确

    • 错误修复,或
    • 新功能,或
    • 零钱
    实际上,我有8个级别的依赖库包。如果有必要,是否有工具支持更新整个包树

    我知道语义版本控制


    我们正在使用VS2012、C#4.0、TeamCity 7.1.5。

    最好在每次签入时更新所有内容,以便尽早进行测试


    您所描述的内容可以使用工件依赖项()和“完成构建”构建触发器(甚至仅使用“Nuget依赖项触发器”)轻松管理。

    我们在基础项目上编写了自己的构建配置(在本例中为Company.Interfaces.sln),它可以一次性构建和更新整个树。它会同时检入更新的packages.config文件和.nuspec文件。我说不出这到底为我们节省了多少时间,即使一开始听起来可能有些过分


    需要注意的一件事是:我们编写的脚本会检查文件,即使链在两者之间的某个地方出现故障,也会给我们机会在本地计算机上进行修复,请检查修复并重新启动发布。

    你是说类似的事情吗?不幸的是,我们的NuSpec文件仍然是手工编辑的,有一些宏用于自动版本替换。我的意思是,自动触发依赖的构建配置,更新NuGet包,签入结果更改(通常是.csproj和packages.config文件),并继续链,直到叶项目。