【问题标题】:Is it possible to pass a hash table as a variable in AzureDevops from one agent phase to another是否可以将哈希表作为 AzureDevops 中的变量从一个代理阶段传递到另一个代理阶段
【发布时间】:2020-06-28 15:50:28
【问题描述】:

我已经看到这个问题在论坛中弹出几次,但我还没有看到答案。我正在尝试在代理阶段的一个任务中创建哈希表的变量,并使用 powershell 将其传递给另一个。具体来说,我正在尝试在一个任务中构建一个哈希表变量,并将其作为安全对象参数传递给下一个任务中的 ARM 模板。

我看到的唯一“答案”是使用这样的写输出方法:

写入输出“##vso[task.setvariable variable=MyVariable]$VariableValue”

如果我尝试创建一个字符串变量,这似乎工作得很好。但我似乎无法让它为一个对象工作。特别是哈希表。然而,我非常成功地创建了一个值为“System.Collections.Hashtable”的 $(MyHashtable) 变量,遗憾的是这不是我的目标。

任何帮助将不胜感激!谢谢!

【问题讨论】:

    标签: variables azure-devops hashtable


    【解决方案1】:

    变量是字符串,而不是对象,故事的结尾。您不能在阶段之间传递对象。阶段可能在不同的代理上运行,并且代理可能在具有不同软件配置的完全不同的操作系统上。保证字符串在它们之间是可移植的。

    这意味着您需要以可移植格式(例如 JSON)序列化和反序列化非字符串值。在 PowerShell 中,ConvertTo-Json -Compress 是您所追求的。

    【讨论】:

    • 谢谢!我一直在寻找一个明确的答案,现在我有了。我可以开始寻找其他选择。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 2019-02-28
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多