【问题标题】:TFS build powershell script step : Not able to access $(Date:yyyyMMdd) variableTFS 构建 powershell 脚本步骤:无法访问 $(Date:yyyyMMdd) 变量
【发布时间】:2016-10-29 03:30:29
【问题描述】:

我使用TFS vNext 构建系统创建了自动部署步骤。 在一个步骤中,我需要访问 $(Date:yyyyMMdd) 以获取一些文件版本控制内容。

你可以在下面找到配置和错误sn-p:

那么知道如何在 PowerShell 脚本步骤中访问与日期相关的变量作为参数吗?

【问题讨论】:

  • 嗨,您希望在$(Date:yyyyMMdd) 中有当前日期吗?你可以使用$(Get-Date -f yyyyMMdd)
  • 我需要将它作为构建 PowerShellScript 步骤中的参数传递,它会起作用吗?

标签: powershell tfs continuous-integration azure-pipelines


【解决方案1】:

"$(Date:yyyyMMdd)" 是内部版本号格式的token,而不是variable。所以你不能在构建步骤中使用它。

另一种方法是将“常规”选项卡下的“内部版本号格式”设置为“$(Date:yyyyMMdd)”,变量“$(Build.BuildNumber)”将填充为“$(日期:yyyyMMdd)”。然后您可以在构建步骤中使用“$(Build.BuildNumber)”变量。

【讨论】:

  • 这条线索有帮助,我创建了一个额外的步骤来修改一个自定义变量,该变量将设置为 (Get-Date).ToString('yyyyMMddHHss') 并在连续步骤中传递该变量。
  • 今天在VTST中,“常规选项卡”不存在,正确的选项卡是“选项”,然后,编辑“内部版本号格式”输入文本字段。
【解决方案2】:

正如错误告诉你的那样,date 不是一个函数。您可以将CompressFile 脚本中的-fileName 参数设置为:

Param(
    [string]$fileName = 'Package{0}' -f (Get-Date).ToString('yyyyMMdd')
)

并省略 TFS VNext 参数列表中的参数(您仍然可以覆盖它)。

【讨论】:

  • 有道理,但我不能以这种方式使用它,因为该文件在多个项目打包之间共享,并且每个项目都有不同的前缀。
  • 然后在调用脚本时省略日期后缀并将其附加到CompressFile 脚本中...
猜你喜欢
  • 2019-10-29
  • 2017-04-16
  • 2018-03-06
  • 2016-12-20
  • 2017-03-27
  • 2015-12-21
  • 2018-04-27
  • 2020-06-14
  • 2018-09-05
相关资源
最近更新 更多