【问题标题】:MSBuild Build Number overlaps for multiple Build Agents多个构建代理的 MSBuild 内部版本号重叠
【发布时间】:2015-10-05 18:07:51
【问题描述】:

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

我们发现,在构建包时,两个代理有自己独立的内部版本号序列,因此当 agent1 运行时,它会将我们的包以 1.2.3.37032 之类的形式保存到 NuGet,然后 agent2 运行它会创建一个包 1.2.3.29321

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

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

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

【问题讨论】:

    标签: tfs msbuild tfsbuild


    【解决方案1】:

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

    使用格式字符串如下:

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

    预览:Project_1.2.11.16

    $(BuildDefinitionName)构建定义的名称

    1.2大版本,升级频率较低,可以手动更改。

    $(DayofYear)创建构建的年份

    $(Rev:.r) 16 一个自动递增的值,用于所有与内部版本号匹配且至少具有指定位数的内部版本的数字部分(今天的下一个版本将是 17 岁,以此类推)

    【讨论】:

    • 感谢您添加替代方法 - 对访问此页面的其他人很有用。
    【解决方案2】:

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

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

    More info 在微软。

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

    【讨论】:

      猜你喜欢
      • 2010-12-04
      • 2016-04-22
      • 2011-12-23
      • 2013-07-16
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 2010-11-06
      • 1970-01-01
      相关资源
      最近更新 更多