VSTS链接构建定义版本号

时间:2018-01-31 09:05:21

标签: visual-studio azure-devops build-definition

我们正在使用VSTS来管理我们的存储库和构建管理器。 我们有一个包含多个程序集的解决方案,其中一个程序集打包为NuGet包,供其他项目引用。

我们有2个构建定义。整个解决方案的一个定义是创建可部署包和NuGet包,以及一个仅创建NuGet包的定义。

版本控制:

  • 版本号类似于{Major}。{Minor}。{Build}。{Revision}
  • 每次构建解决方案定义时,Build都应增加
  • 每次构建NuGet定义时,修订版都应增加

E.G:

  • 从1.0.5(.0)开始
  • NuGet内置=> 1.0.5.1
  • 解决方案内置=> 1.0.6(0.0)
  • 解决方案内置=> 1.0.7(0.0)
  • NuGet内置=> 1.0.7.1
  • NuGet内置=> 1.0.7.2

为了实现这一点,我们在构建定义中使用$(rev:.r)变量,该变量在每次构建时递增。 但是,在NuGet定义中,我们不知道解决方案定义中最新的内部版本号是什么。

目前我们正在使用变量进行设置,但正如您所想,这是不可取的。 问题是,我们能否以某种方式将NuGet定义链接到解决方案定义以提取内部版本号?

1 个答案:

答案 0 :(得分:0)

对包版本使用内部版本号是不合理的。原因如下:

  1. 构建版本中的内部版本号相同。
  2. 将增加VSTS帐户中所有构建定义的内部版本号。例如,当你在project1中构建definition1时,内部版本号为100.然后,如果构建了project2中的构建定义2,则内部版本号将为101.如果之后构建了deinition1,则内部版本号将为102.
  3. 设置nuget包版本的常用方法是使用gitversion或汇编版本:

    如果您使用git作为VCS,并且工作流程符合gitflow of gitversion,那么您可以使用GitVersion任务,并使用由此任务生成的版本变量作为nuget包版本。< / p>

    或者您可以将Update AssemblyInfo任务或Assembly Info Reader任务等用于nuget包版本。