多个Build Agent的MSBuild Build Number重叠

时间:2015-10-02 08:41:21

标签: tfs msbuild tfsbuild tfs2013

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

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

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

我意识到我们也应该增加版本号,例如1.2.4每次也是如此,但对于每一次单程登记而言都相当费力。

现在我们必须禁用一个构建代理来防止这种情况 - 是否有更好的方法来执行此操作,或者确保构建号是顺序的?

2 个答案:

答案 0 :(得分:1)

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

使用格式字符串如下:

<强> $(BuildDefinitionName)_ 1.2的 $(DAYOFYEAR)$(启:.R)

预览:Project_1.2.11.16

$(BuildDefinitionName)构建定义的名称

1.2 主要版本,由于升级频率较低,您可以手动更改。

$(DayofYear)创建构建的年份

$(版本:.r) 16所有版本的数字部分的自动递增值,这些值与内部版本号匹配且至少包含指定数字的数量(当天的下一个版本)将是17,依此类推)

答案 1 :(得分:0)

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

的支持团队

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

Microsoft的

More info

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