【问题标题】:TFS Build 2015 - using custom variables in label formatTFS Build 2015 - 使用标签格式的自定义变量
【发布时间】:2017-03-02 09:52:35
【问题描述】:

TFS 构建允许在构建定义的“存储库”选项卡中定义标签格式。我可以在“变量”选项卡中定义自定义变量,并在标签格式定义中使用它们。但是是否有可能在自定义构建步骤中更改批处理脚本中此类自定义变量的值?或者也许在其他类型的构建步骤中?我可以在批处理脚本中获取此类变量的值,但任何更改都将被忽略(尽管设置了“修改环境”复选框)。是否有可能使用在构建过程中计算的值作为标签格式的一部分?

提前致谢!

【问题讨论】:

  • 您的问题中其他类型的构建步骤是什么意思?你能举个例子吗?
  • 我使用 powershell 来更改 powershell 中自定义变量的值:Write-Host "##vso[task.setvariable variable=ProductVersionNumber;]$productVersion"。它有效,但只有初始值进入标签。似乎在构建的一开始就评估了格式。

标签: tfs msbuild


【解决方案1】:

应该是的。 “变量”选项卡中的自定​​义变量和自定义构建步骤中批处理脚本中的自定义变量没有太大区别。

但是,请注意并非每个自定义变量都可以用作标签格式的一部分。请仔细检查。

某些构建变量可能会产生一个不是有效标签的值。 例如$(Build.RequestedFor)Build.DefinitionName 可以包含空格。如果值包含 空格,标签不会被创建。


从 OP 更新:作为一种解决方法,您可以使用 build.updatebuildnumber 更新内部版本号,然后以标签格式使用 $(build.buildNumber)

【讨论】:

  • 在标签中使用自定义变量没有帮助(未使用更新值,仅使用初始值),但使用 build.updatebuildnumber 我可以更新内部版本号,然后使用 $(build.buildNumber)标签格式。
  • 我想确认在构建开始时为标签计算自定义变量值。而且以后不受powershell脚本的影响。所以“应该是”但“不是”。但是您是绝对正确的:使用Write-Host ("##vso[build.updatebuildnumber]$env:versionFromFile") 可以将$(build.buildNumber) 更新为在管道中先前的powershell 脚本中设置的自定义$(versionFromFile) 变量值。源标签使用更新后的$(build.buildNumber) 值。
猜你喜欢
  • 2018-04-22
  • 2015-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-17
  • 2019-12-17
  • 2016-02-15
  • 1970-01-01
相关资源
最近更新 更多