Azure devops Azure DevOps发布管道变量嵌套/组合/表达式

Azure devops Azure DevOps发布管道变量嵌套/组合/表达式,azure-devops,azure-pipelines,azure-pipelines-release-pipeline,azure-keyvault,Azure Devops,Azure Pipelines,Azure Pipelines Release Pipeline,Azure Keyvault,我有一个带有变量的发布管道,但似乎没有任何方法将该变量的值设置为发布时计算的值。例如,另一个变量 下面是一个真实的例子: 我只想将MyExpressionBasedVariable的值设置为MyOtherVariable的值 所有在线文档和示例似乎都表明这是可能的,但我无法让它发挥作用。我总是以文本字符串而不是计算值结束 我试过使用这些不同的语法: $(MyOtherVariable) $[变量['MyOtherVariable']] ${{variables['MyOtherVariabl

我有一个带有变量的发布管道,但似乎没有任何方法将该变量的值设置为发布时计算的值。例如,另一个变量

下面是一个真实的例子:

我只想将MyExpressionBasedVariable的值设置为MyOtherVariable的值

所有在线文档和示例似乎都表明这是可能的,但我无法让它发挥作用。我总是以文本字符串而不是计算值结束

我试过使用这些不同的语法:

  • $(MyOtherVariable)
  • $[变量['MyOtherVariable']]
  • ${{variables['MyOtherVariable']}
我已经看到,您可以定义自定义任务来将变量名设置为管道的一部分,但这似乎有点过分了

基本上,我所要做的就是将密钥库秘密重命名为不同的变量名,以便在配置文件中替换基于约定的XML变量

例如,我有一个名为
this-is-a-secret-name-which-is-a-different-naming-convention-to-my-ConnectionString
的秘密,但我需要在名为
MySecret ConnectionString
的变量中使用它

如何在发布管道变量中使用另一个变量的值? 如何在发布管道变量中使用另一个变量的值

当我测试时,您设置的应该是工作。您可以尝试按照以下步骤检查是否仍然存在此问题:

  • 创建一个新的发布管道,不链接任何变量组
  • 如下所示设置变量:

  • 添加运行内嵌Powershell任务以输出变量值:

    Write-Output 'The value of MyExpressionBasedVariable is $(MyExpressionBasedVariable)'
    
    Write-Output 'The value of $(MyOtherVariable) is $(MyOtherVariable)'
    
然后我们可以得到日志:

因此,您设置的应该是工作,如果这仍然不适用于您,那么您需要确保您在问题中描述的变量是您实际测试的变量

除了,目前,构建/发布管道中还不支持嵌套变量的值(如
$(TestVar_$(Release.Reason))
),请检查一些详细信息,确保项目中没有此类嵌套变量


希望这能有所帮助。

你不必做任何特别的事情
Foo
=
$(Bar)
Bar
=
Baz
将导致
Foo
=
Baz
。这可能与您对变量的使用有关。你能用实际用法更新你的问题吗?我是这么想的,但据我所知,它不起作用。这只适用于构建管道而不是发布,还是应该是相同的?是相同的。我总是这样做。我现在正在做发布定义,这样做。好啊不知道我做错了什么。可能是因为我正在使用一个变量组中的一个变量,在该变量组中,我启用了复选框以允许访问所有管道?也就是说,这是一种继承,而不是明确地导入到管道中?@DanielMann经过一些尝试后,我可以确认这就是它!如果我“链接”管道中的变量组,它就会工作。如果我“取消”变量组的链接,它将停止工作,我只会得到文本名
$(MyOtherVariable)
,即使我可以在管道任务中直接使用同一个变量,但它在管道变量屏幕中不起作用。脸掌。