【问题标题】:Revision number is not updated properly in VNext buildsVNext 版本中的修订号未正确更新
【发布时间】:2018-06-05 15:40:47
【问题描述】:

在 TFS2017 中使用 Gated/CI 构建定义 (vNext),修订号未正确增加。即使更改正确签入,每个版本都具有相同的 Rev 编号。

我在构建过程开始时通过 powershell 从 $Env:BUILD_BUILDNUMBER 获取修订号,它总是返回相同的数字。

【问题讨论】:

  • 您的意思是内部版本号始终相同吗?您是如何在构建定义中设置 Build number format 的?

标签: tfs build-definition vnext


【解决方案1】:

确保您在Build number format 设置中使用$(Rev:.r) 令牌。

Build number format:

使用 $(Rev:.r) 确保每个已完成的构建都有唯一的名称。 构建完成后,如果构建编号中没有其他内容 改变后,Rev 整数值加一

如果你想在号码中显示前缀零,你可以添加额外的 'r' 字符。例如,如果您想要 Rev,请指定 $(rev:.rr) 以 01、02 等开头的数字。

还要确保内部版本号未使用永久编号或字符串进行更新。 (有可能是used a script to customize your build process 更新了内部版本号)


更新1:

请注意,如果在Build number format 中更改了主要版本号,则版本号将不会更改。 仅当主要部分未更改时,修订号才会增加。

顺便说一句,令牌$(rev:.rr) 应用作变量,因此内部版本号格式应类似于:Test DEV CI_Rev.$(rev:.rr) 在您的方案中。


更新 2:

在您的场景中,您每次都使用程序集信息更新内部版本号。因此,如果每次的程序集信息都不同,那么修订号将不会更改,这是预期的行为。

【讨论】:

  • 我的内部版本号格式是:Test DEV CI_Rev.(rev:.rr) 但我通过 Test 1.8.0.8 DEV CI.01 更新内部版本号我创建了一个变量,例如“Test Ver DEV CI.Rev”,其中“Ver”替换为 AssemblyInfo,“Rev”替换为修订号。阅读以上信息,只有在“内部版本号格式”没有改变的情况下,修订才会改变,我说的对吗?
  • @Felipe 是的,如果在Build number format 中更改了主要版本号,则不会更改修订号。仅当主要部分未更改时,修订号才会增加。顺便说一句,$(rev:.rr) 应该用作变量,因此内部版本号格式应该类似于:Test DEV CI_Rev.$(rev:.rr) 在您的场景中。
  • @Felipe 请查看更新后的答案,尤其是 bold 字。
  • 对不起,我已经有 $(rev:.rr)。但是“主要部分”是什么意思,因为你可以放任何你想要的东西。
  • @Felipe “Major part”表示主版本号,例如假设最终版本号是2018Test.1,那么我提到的主要部分应该是2018Test。当您使用令牌$(rev:.r) 时,如果下次不更改内部版本号2018Test,那么下一个最终内部版本号应该是2018Test.2。但是如果内部版本号2018Test改变了,比如改成2018Test-v,那么这个版本就不会再改变了,最终的内部版本号可能是2018Test-v.1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-03
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
相关资源
最近更新 更多