繁体   English   中英

VSTS链接构建定义版本号

[英]VSTS link build definition version numbers

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

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

版本控制:

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

例如:

  • 从1.0.5(.0)开始
  • NuGet被构建=> 1.0.5.1
  • 解决方案已建立=> 1.0.6(.0)
  • 解决方案已建立=> 1.0.7(.0)
  • NuGet被构建=> 1.0.7.1
  • NuGet内置=> 1.0.7.2
  • 等等

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

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

使用内部版本号作为软件包版本是不合理的。 原因如下:

  1. 内部版本号在内部版本中相同。
  2. VSTS帐户中所有构建定义的内部版本号都会增加。 例如,当您在project1中构建definition1时,构建号为100。然后,如果在project2中构建了build2,则构建号将为101。如果在此之后构建deinition1,则构建号将为102。

设置nuget软件包版本的常用方法是使用gitversion或程序集版本:

如果将git用作VCS,并且工作流程符合gitversion的gitflow ,则可以使用GitVersion任务,并将由该任务生成的version变量用作nuget软件包版本。

或者您可以使用更新的AssemblyInfo任务或大会信息读取器任务等的NuGet包版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM