1

在我们的发布管道中,我们有一个控制台应用程序,它执行一个生成加密密钥并将其输出到 STDOUT 的功能。我们需要能够在部署期间在变量中使用此值(使用控制台应用程序的结果更新配置文件)。我们已经尝试在 Azure Devops 的命令行任务中使用输出变量选项,但不幸的是,我们需要以不同的格式使用它......而且它似乎没有按预期工作。

例如,我们的命令行工具输出908321093RANDOMLYGENERATEDKEY3422543到 STDOUT

该键在我们的配置文件中的名称类似于Settings.Security.OurKey但是命令行任务中的输出变量不允许使用句点 (.),因此设置为SettingsSecurityOurKey...我们也尝试过 SETTINGS_SECURITY_OURKEY,但变量值永远不会由任务设置。

是否可以以某种方式将 Azure Devops 变量设置为命令行或 powershell 脚本的输出变量的值?就像是:

set $(Settings.Security.OurKey) = SettingsSecurityOurKey

或者有没有更简单的方法来实现这一点?好像应该没那么难。。

4

2 回答 2

0

这听起来像是 Powershell 问题,而不是 Azure DevOps 的问题。

# Variable name with special characters
$VariableName.That.Contains.Periods     # This will NOT work.
${VariableName.That.Contains.Periods}   # This will work.

有关更多信息,请参阅:https ://blog.danskingdom.com/accessing-powershell-variables-with-periods-in-their-name/

于 2019-09-29T23:37:59.123 回答
0

如果您希望 PowerShell 变量包含命令的标准输出,只需分配它:

$yourVariableName = your_command_that_writes_to_stdout

如果输出只有一行,PowerShell 变量将包含单个字符串;否则它将包含一个数组。

于 2019-11-13T18:50:53.227 回答