【发布时间】:2018-02-01 04:50:07
【问题描述】:
我想创建一个名为 NugetVersionNumber 的变量,其值为 $(Date:yyyy.MM.dd)$(Rev:.rr) 的日期格式,最后是修订版。
例如
2018.8.23.1
如何在不更改 build.buildnumber 变量的情况下设置流程变量来构造这种格式?
【问题讨论】:
标签: .net .net-core tfs azure-devops azure-pipelines
我想创建一个名为 NugetVersionNumber 的变量,其值为 $(Date:yyyy.MM.dd)$(Rev:.rr) 的日期格式,最后是修订版。
例如
2018.8.23.1
如何在不更改 build.buildnumber 变量的情况下设置流程变量来构造这种格式?
【问题讨论】:
标签: .net .net-core tfs azure-devops azure-pipelines
它不能直接将$(Date:yyyy.MM.dd)$(Rev:.rr) 用作user-defined variables。 (Date:yyyyMMdd) 是内部版本号格式的 token,不是一般变量。
这样做的唯一方法是使用(Date:yyyy.MM.dd)$(Rev:.rr) 格式设置您的内部版本号。然后直接使用$(Build.BuildNumber) 变量。
因为您将使用它作为 Nuget 包版本。您可以直接在Nuget Package task 中查看使用内部版本号来版本包。
要使用内部版本号,请选中使用内部版本号来版本包 框并按照行的说明进行操作(将鼠标悬停在蓝色 i 图标上) 设置构建版本格式字符串。您必须设置构建版本 将字符串格式化为至少由句点分隔的三个部分 避免 NuGet 打包错误。默认构建版本格式 字符串是
$(date:yyyyMMdd)$(rev:.r),所以一个简单的改变是添加一个 末尾为零,日期和构建计数器之间有一段时间:$(date:yyyyMMdd).$(rev:.r).0.
【讨论】:
$(rev:.r) 处理,因为这意味着时间段和版本号。正确的 NuGet 打包应该是 $(date:yyyyMMdd)$(rev:.r).0
我设法让它工作。我意识到 tfs 2017 在使用任务“版本 .NET Core 程序集”并使用正则表达式过滤器从 build.buildnumber 变量中提取日期时会生成一个名为“OutputedVersion”的构建变量。
【讨论】: