【问题标题】:VSTS Nested VariablesVSTS 嵌套变量
【发布时间】:2017-10-13 19:41:16
【问题描述】:

我正在尝试完成一个级联变量,当设置一个设计时变量时,它会级联到其他变量。这可能吗?我试过用点表示法,我试过不用点表示法,我也试过在任务中这样做:

我也试过这个任务插件,但是我的代理是 2.0 并且任务没有运行。

Variable Toolbox Task

有什么想法吗?

答案:

您可以在环境级别覆盖这些变量。我将不得不在我的脚本中手动扩展这些变量,然后将它们设置为此脚本中的解析值。

【问题讨论】:

  • 它对我来说很好用:Server: $(Server.$(Environment))。你如何使用Server 变量? (我在PowerShell任务的参数中使用它)代理版本的版本是什么(托管代理和私有代理(2.120.2)工作正常)
  • 你解决了这个问题吗?
  • @starain-MSFT 是的,您的回答实际上会解决这个问题,因为我可以编写一个程序来从脚本中提取 VSTS 构建变量,然后自己在该脚本中扩展这些变量。感谢您的意见。

标签: azure-devops azure-pipelines azure-pipelines-build-task


【解决方案1】:

构建过程中可以通过Logging Command设置变量值:

  1. 添加 PowerShell 任务

脚本:(如果变量包含.,则需要使用_,如Server.Dev=> Server_Dev)

$v= [Environment]::GetEnvironmentVariable("Server_$env:Environment")
Write-Host ("##vso[task.setvariable variable=Server;]$v")
  1. 那么下面的任务可以使用对应值的Server变量

【讨论】:

    【解决方案2】:

    不要为每个环境使用不同的变量,而是使用相同的变量,但在环境级别覆盖它。

    【讨论】:

    • 这是维护的噩梦。
    猜你喜欢
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    相关资源
    最近更新 更多