多个生成代理的 MSBuild 生成号重叠

MSBuild Build Number overlaps for multiple Build Agents

我们使用 TFS-online 但有一个本地构建服务器,在我们设置它时默认为两个构建代理。我们的应用程序设置为在签入时持续构建。

我们发现在构建包时,这两个代理有自己独立的构建编号序列,因此当 agent1 运行 时,它会将我们的包保存到 NuGet,如 1.2.3.37032,然后是 agent2 运行 它将创建一个包 1.2.3.29321

因此我们的部署服务器在更新应用程序时选择了较旧的版本。

我意识到我们还应该增加版本号,例如每次也是1.2.4,但是每次签到都比较费力

目前我们不得不禁用一个构建代理来防止这种情况 - 是否有更好的方法来做到这一点,或者有什么方法可以确保构建编号是连续的?

事实证明,最简单的解决方案是将版本控制方案从三部分更改为两部分,例如1.2.* 而不是 1.2.3.* - 感谢 Octopus Deploy

的支持团队

这意味着构建将以 1.2.{build}.{release} 的形式创建。 {build} 每天递增,{release} 根据当前日期和时间递增。

More info 在 Microsoft。

所以现在构建看起来像这样:1.2.5733.12345

您也可以使用内部版本号模板来确保内部版本号是连续的。内部版本号是使用您在构建定义中指定的内部版本号模板设置的。编辑构建定义时,转到进程选项卡 -> 高级 -> 构建编号格式字段,您可以自定义构建编号的外观。

使用格式字符串如下:

$(BuildDefinitionName)_1.2.$(DayofYear)$(Rev:.r)

预览:Project_1.2.11.16

$(BuildDefinitionName) 构建定义的名称

1.2大版本,由于更新频率较低,可以手动更改。

$(DayofYear) 创建构建的年份

$(Rev:.r) 16 与版本号至少指定位数匹配的所有版本的数字部分的自动递增值(The这一天的下一个构建将是 17,依此类推)