【问题标题】:Updating the version/revision numbers for every new build更新每个新版本的版本/修订号
【发布时间】:2017-09-20 04:28:49
【问题描述】:

为了使用 VSTS 实现 CI/CD,现在我被困在一个点,我应该为每个排队的新构建增加版本号。

是否可以通过在构建定义中再添加一个任务来更新每个项目输出(dll 或 exe)的修订号,或者任何 msbuild 参数都可用于在运行时更改版本号。

提前致谢。

【问题讨论】:

  • 新的 sdk 风格项目类型支持 msbuild 参数,但 c# 修改必须手动/通过正则表达式完成(还有an extension for vsts),所以如果说明哪种项目类型会有所帮助你正在使用
  • 你用 Chris 的方案解决了这个问题吗?
  • no starain 我没有机会研究它。
  • 你尝试了哪些步骤?可以分享 OneDrive 上的日志吗?

标签: msbuild azure-devops azure-pipelines azure-pipelines-release-pipeline


【解决方案1】:

BuildNumber 会针对每个计划的构建自动创建。

您可以在 Build>Options>Build number format 部分中指定您想要的内容。

默认值为:

$(date:yyyyMMdd)$(rev:.r)

但是,如果您在构建中添加一些变量,那么您可以更改格式。

$(MajorVersion).$(MinorVersion)-$(date:MMdd)$(rev:.r)

然后将它作为预定义变量传递到您的发布步骤

$[BUILD_BUILDNUMBER] - TFS 2010/15/17 Update1

$(Build.BuildNumber) changed from old $[BUILD_BUILDNUMBER] for Update2

可以在此处找到有关内部版本号和变量的更多信息:

Build Number Format

Default Variables

编辑:

是的,您也可以向 DLL 添加版本控制。我们使用一个股票 Microsoft Powershell 脚本来解决这个问题,我们将其添加为构建任务(在构建解决方案步骤之前),可以在此处找到源代码:

Assembly PowerShell Script

这不需要任何参数,因为它使用构建过程中的变量!

【讨论】:

  • 感谢克里斯的回复。还有一个疑问,我正在构建一个项目,该项目的输出是 dll,那么有没有办法更新 dll 的版本号?通过在构建定义中添加任务?
  • 用关于 DLL 问题的更多信息编辑了答案。
  • Chris 对我的构建定义还有一个疑问,我有多个项目文件而不是 sln 文件,所以我需要在构建每个 proj 文件之前执行 powershell 脚本
  • 嘿 Pavan,powershell 脚本只是更改了您在第一个构建过程步骤中包含的源中存在的所有 dll。在我的情况下,我随后使用这些值构建了解决方案,然后您可以将项目文件作为标准构建,而无需在每一步之前添加 powershell 脚本
  • 链接中的脚本对我来说真的是即插即用,我喜欢在我的存储库中拥有脚本而不是扩展的灵活性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-07
  • 1970-01-01
  • 2010-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多