【发布时间】:2019-06-27 16:43:56
【问题描述】:
我有一个带有变量的发布管道,但似乎没有任何方法可以将该变量的值设置为在发布时评估的值。例如,另一个变量。
这是一个真实的例子:
我要做的就是将MyExpressionBasedVariable 的值设置为MyOtherVariable 的值。
所有在线文档和示例似乎都表明这是可能的,但我无法让它发挥作用。我总是以文字字符串而不是评估值结束。
我尝试过使用这些不同的语法:
$(MyOtherVariable)$[variables['MyOtherVariable']]${{variables['MyOtherVariable']}}
我看到您可以定义自定义任务以将变量名称设置为管道的一部分,但这似乎太过分了。
基本上我要做的就是将密钥库机密重命名为不同的变量名,以便在配置文件中进行基于约定的 XML 变量替换。
例如我有一个名为 this-is-a-secret-name-which-is-a-different-naming-convention-to-my-connectionstrings 的秘密,但我需要在一个名为 MySecret-ConnectionString 的变量中使用它。
如何在发布管道变量中使用另一个变量的值?
【问题讨论】:
-
你不应该做任何特别的事情。
Foo=$(Bar)和Bar=Baz将导致Foo=Baz。这可能与您对变量的使用有关。您可以根据实际使用情况更新您的问题吗? -
这就是我的想法,但据我所知,它不起作用。这只适用于构建管道而不是发布,还是应该相同?
-
是一样的。我一直都这样做。我正在现在开发执行此操作的发布定义。
-
嗯。行。不知道我做错了什么。是不是我正在使用变量组中的变量,我启用了复选框以允许访问所有管道?即它是一种继承的而不是显式导入到管道中的?
-
@DanielMann 在玩了一些之后,我可以确认就是这样!如果我“链接”管道中的变量组,它就可以工作。如果我“取消链接”它停止工作的变量组,我只会得到文字名称
$(MyOtherVariable),即使我可以直接在管道任务中使用相同的变量 - 它只是在管道变量屏幕中不起作用。掌心。
标签: azure-devops azure-pipelines azure-pipelines-release-pipeline azure-keyvault