【问题标题】:Setting a date and revision number as variables in tfs 2017在 tfs 2017 中将日期和修订号设置为变量
【发布时间】: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


    【解决方案1】:

    它不能直接将$(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
    【解决方案2】:

    我设法让它工作。我意识到 tfs 2017 在使用任务“版本 .NET Core 程序集”并使用正则表达式过滤器从 build.buildnumber 变量中提取日期时会生成一个名为“OutputedVersion”的构建变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-24
      • 2017-12-18
      • 1970-01-01
      • 2020-03-04
      • 2018-05-16
      • 2014-06-14
      • 2016-06-30
      相关资源
      最近更新 更多