【问题标题】:TFSBuild Powershell step turning script arguments into strings. How to avoid this?TFSBuild Powershell 步骤将脚本参数转换为字符串。如何避免这种情况?
【发布时间】:2016-06-18 03:06:33
【问题描述】:

我在 Powershell 构建步骤中配置了以下参数:-protocol:http -portsToOpen 9512,9513,9512

一旦 TFSBuild 运行整个脚本,就会抛出以下错误:

“System.Int32[]”。错误:“无法转换 “9512,9513,9515”到“System.Int32”

问题是 TFSBuild 正在运行用引号包围 9512,9513,9515 的脚本(即'9512,9513,9515')。

有什么解决办法吗?一种可能的解决方法是从命令构建步骤运行powershell.exe...但我想知道是否有直接解决此问题的方法。

【问题讨论】:

    标签: powershell tfs arguments tfsbuild tfs-2015


    【解决方案1】:

    我不使用 TFS,但我可以告诉你 PowerShell 正在将其解析为整数数组 (System.Int32[]) 并尝试将其作为参数传递给 -portsToOpen

    如果您在该行上没有变量,您可以使用 stop parsing operator --% 那样

    指示 Windows PowerShell 避免将输入解释为 Windows PowerShell 命令或表达式。

    icacls X:\VMS --% /grant Dom\HVAdmin:(CI)(OI)F

    您也可以实际上将其放在引号中,以便 PowerShell 将其视为字符串。我找不到文档来支持它期望输入该参数的方式,所以我不确定。

    【讨论】:

    • 嗯,我确实可以使用--% 运算符。下周一我会试一试,因为这是一个工作项目,我无法从互联网访问公司的 TFS
    猜你喜欢
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    相关资源
    最近更新 更多