如何使用字符串和另一个变量值引用VSTS构建中的变量?

时间:2017-08-27 20:18:02

标签: azure-devops azure-pipelines

我希望使用字符串在VSTS中引用自定义变量,并使用另一个变量的值来创建我想要的变量的键。

我所拥有的是每个环境特有的变量,我想在任务中引用正确的变量。所以在我的截图中,我试图根据环境变量是“DEV”还是“QA”来引用变量MobileCenter.GroupID.DEV或MobileCenter.GroupID.QA的值。我在屏幕截图中看到的内容似乎不起作用。

Example

3 个答案:

答案 0 :(得分:3)

你做不到。

没有更多的上下文很难说,但我认为我们有一个X-Y问题 - 你问的是如何实现解决方案Y,但你应该问如何解决问题X.

可能想要做的是使用发布定义而不是构建定义并将其分解为管道的各个阶段 - 您可以使用一个用于“Dev”,一个用于“ QA“,每个都有不同的变量值。

答案 1 :(得分:1)

是的,可以将变量的值用于另一个变量。

您可以在每个发布环境中使用 $(MobileCenter.GroupID.$(Release.EnvironmentName)) 格式。然后,您可以针对不同的环境获得不同的值。

变量$(Release.EnvironmentName)predefined variable,它可以获取DEV,QA等环境名称,因此您无需在发布定义中定义它。

答案 2 :(得分:0)

您可以执行某些操作,在marina-msft中查看Is there a way to do nested variables in VSTS Release Management的答案。

  

您列出的两种方法可以很好地运作。 VSTS发布支持嵌套变量。

     

除了在发布定义(或环境变量)中定义变量或直接使用它,您可以直接在变量组中添加变量CodeNetworkShare1=$(CodeNetworkShare.$(Release.EnvironmentName))。然后在您的发布定义中,它可以使用不同的环境名称应用不同的值。