多个生成代理的 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,依此类推)
我们使用 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,依此类推)