Azure Devops Powershell任务:对生成变量的编程访问

Azure Devops Powershell任务:对生成变量的编程访问,azure,powershell,azure-devops,Azure,Powershell,Azure Devops,您好,我想知道我是否可以通过编程方式访问powershell发布任务中的发布变量。我的用例是:我想创建一个通用的powershell脚本,可以用于部署到多个环境。我希望在powershell任务上设置一个环境变量,该变量将指定env=dev或test或prod等。因此,我希望powershell脚本根据环境变量动态访问相应的生成变量(而不创建大量switch语句)。我可以很好地访问环境变量 所以我有这个: $deployenv = "${Env:kudu.env}" #(this work

您好,我想知道我是否可以通过编程方式访问powershell发布任务中的发布变量。我的用例是:我想创建一个通用的powershell脚本,可以用于部署到多个环境。我希望在powershell任务上设置一个环境变量,该变量将指定env=dev或test或prod等。因此,我希望powershell脚本根据环境变量动态访问相应的生成变量(而不创建大量switch语句)。我可以很好地访问环境变量

所以我有这个:

$deployenv = "${Env:kudu.env}"    #(this works just fine)
$apiUrl = '$(dev.kudu.url)'       #(when hard coded like this it works fine)
目前,$apiUrl可以很好地检索发布变量,但我不想在参数名中硬编码“dev”

我试过很多东西,比如

$apiUrl = variables["$deployenv.kudu.url"]

所以我想知道,这是从我的powershell任务中以编程方式访问这些发布变量的一种方法吗?

您试图实现错误问题的解决方案。实际问题是没有正确使用变量作用域


在不同的环境中使用相同的变量名,并在不同的范围内定义不同的值。i、 e.开发环境将
Kudu.Url
变量设置为开发环境的值。QA环境将
Kudu.Url
设置为QA环境的值。诸如此类。

您试图实现错误问题的解决方案。实际问题是没有正确使用变量作用域


在不同的环境中使用相同的变量名,并在不同的范围内定义不同的值。i、 e.开发环境将
Kudu.Url
变量设置为开发环境的值。QA环境将
Kudu.Url
设置为QA环境的值。等等。

你100%就在这里。我不知道这是一件事,但完全正确的方式来解决这个问题。你是100%在这里。我不知道这是一件事,但完全正确的方式来解决这个问题。