Nuget / Assembly版本控制 - 即使没有任何更改,我应该增加版本吗?

时间:2015-12-10 14:48:51

标签: tfs msbuild nuget versioning assemblyversions

我有几个项目的解决方案,每个项目都是在tfs服务器上构建的,并打包成单独的nuget包。

当我在构建服务器上运行构建时,会创建并发布新版本的nuget软件包。我为所有包使用了相同的自动递增版本号。

  1. 即使该特定项目中没有任何变化,我是否应该创建新版本的软件包?

  2. 是否有任何工具或文章只有在实际项目(或其中一个依赖项)发生变化时才能帮助我发布新包?有没有人这样做过?

  3. 修改

    在我的解决方案中,我有项目(* 格式project(references) -> Package Name ):

    • A - >程序包A
    • B(A) - > PackageB(PackageA)
    • C - > PackageC
    • IntegrationTest(A,B,C)

    并分享了version.txt。

    当我在构建服务器上更改项目C构建时,所有软件包都在构建服务器上使用version.txt重新打包并发布。

    然后我有不同的解决方案,消耗这些包。

1 个答案:

答案 0 :(得分:0)

因为你不能认为只要你想打包其中一个,你就可以打包其他项目:

  

您是否可以考虑每次想要创建特定项目的nuget时,其他项目也可以随时打包?或者,也许会在其他项目中进行进展开发。 - Paulo Suassuna 55分钟前

     不,我不能考虑那个。 - Liero 18分钟前

每次要打包解决方案的项目时,都不应创建所有项目的新版本。相反,你应该始终创建唯一一个你想要打包的人。 另外,我猜你在解决方案项目之间使用项目参考。在这种情况下,您也不应该这样做,因为您将引用项目的不稳定版本。例如:

您希望通过全新的办理登机手续来打包项目B:

  • 您签入B
  • 中的更改
  • 一些不良办理登机手续进入A
  • 您在构建服务器上构建解决方案
  • 为A
  • 构建一个坏的nuget
  • 您的B NuGet包将引用一个有问题的A NuGet包。

实际上,您应该将它们视为不同的产品,因此您应该更改它们以供nuget参考。这样,您就可以保证使用其他项目的稳定版本。实施例

您希望通过全新的办理登机手续来打包项目B:

  • 您签入B中的更改(B引用A的稳定1.0 nuget包)
  • 一些不良办理登机手续进入A
  • 您在构建服务器上构建解决方案
  • 构建包含A.1.0.nupkg依赖关系的新B(如果最新的A签入错误并不重要)
  • 最后你有一个很好的B NuGet包。

您可以将所有项目保留在单个解决方案中,但请务必将它们之间的引用更改为NuGet引用。