TFSBuild Powershell步骤将脚本参数转换为字符串。怎么避免这个?

时间:2016-03-04 11:36:06

标签: powershell tfs arguments tfsbuild tfs2015

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

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

  

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

问题是TFSBuild正在运行带有小数的脚本9512,9513,9515(即'9512,9513,9515')。

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

1 个答案:

答案 0 :(得分:0)

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

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

  

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

     

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

您还可以实际将其放在引号中,以便PowerShell将其视为字符串。我找不到文档来备份它对该参数的预期输入,所以我不确定。