在VSTS中,如何在另一个变量的名称中引用变量?

时间:2017-08-23 06:07:44

标签: azure-devops azure-pipelines-release-pipeline

我有一个变量组,其中包含环境的部署凭据,test_hosttest_token等。我希望能够在发布任务中使用这些变量的值,但我不会&#39 ; t想要输入环境名称(测试),因为这可以在不同环境之间进行更改。

如何使用当前环境名称引用test_host变量?我已经尝试了$($(Release.EnvironmentName)_host),这导致字符串$(test_host)被传递到我的脚本。如何解决$(test_host)

注意 - 我正在尝试将这些值传递给powerhsell脚本,因此在参数字段中我-deployHost $($(Release.EnvironmentName)_host)导致-deployHost $(test_host)被执行。

更新1 虽然这些值最终会传递到PowerShell脚本,但该脚本位于任务组中。如果我在任务组之外执行它(只是发布中的常规PowerShell任务),那么它可以工作。当我将值传递给任务组参数时,它会失败。见下面的日志。

2017-08-24T12:58:50.5643742Z Generating script.
2017-08-24T12:58:50.7206133Z Formatted command: . 'C:\agent_work\r5\a\RCV\deploys\uxforms\Deploy-ToUxForms.ps1' -targetHost $(test_host)
2017-08-24T12:58:50.7206133Z ##[command]"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -File "C:\agent_work\_temp\baf9f7b8-2de2-4760-8cfd-67cd530801ed.ps1"
2017-08-24T12:58:50.7206133Z ##[error]test_host : The term 'test_host' is not recognized as the name of a cmdlet, function, script 
file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct 
and try again.

At C:\agent_work\_temp\baf9f7b8-2de2-4760-8cfd-67cd530801ed.ps1:2 char:79
+ . 'C:\agent_work\r5\a\RCV\deploys\uxforms\Deploy-ToUxForms.ps1' -targetHost $(te ...
+                                                                               ~~
    + CategoryInfo          : ObjectNotFound: (test_host:String) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : CommandNotFoundException

由于

1 个答案:

答案 0 :(得分:0)

重新创建所有任务组和变量,现在就可以了。