我有一个 TFS 2010 版本,它调用一个 powershell 脚本进行部署。我为构建脚本定义了几个参数,这些参数效果很好。它们由构建使用,并且还包含在通过 InvokeProcess 控件的 Arguments 属性传递到 Powershell 的参数中。
我现在需要将 powershell 脚本部署到可变数量的服务器,因此我想在 TFS 的参数列表中传递服务器 ID。
在构建定义中,我声明了一个名为 TargetServers 类型为 string[] 的新参数。在执行构建之前,我已经从“构建过程参数”对话框中填充了它。
我已将 InvokeProcess 控件的 FileName 属性设置为“Powershell”,并将 Arguments 属性设置如下:
String.Format(" ""& '{0}' '{1}' '{2}' '{3}' '{4}' '{5}' '{6}' '{7}' '{8}' '{9}' "" ", DeploymentScriptFileName, IO.Path.GetDirectoryName(DeploymentScriptFileName), "ExecuteBizTalkAppMSI.ps1", MSIFileName, BTDFFilename, TargetServerPath, TargetServers, ServerDeploymentFolder, InstallFolder, HostInstanceFilter, ApplicationName)
我的问题是传递给 Powershell 的 TargetServers 参数只是 System.String[]。
从构建日志中,我可以看到 Invoke Process 控件的以下输出:
Powershell "& 'C:\Builds\3\x.Int.MIS.Deployment\CopyDeployScriptThenExecute.ps1'
'C:\Builds\3\\x.Int.MIS.Deployment' 'ExecuteBizTalkAppMSI.ps1'
'x.Int.MIS-3.0.0.msi' 'x.Int.MIS.Deployment.btdfproj'
'\\d-vasbiz01\BizTalkDeployment' 'System.String[]' 'c:\BizTalkDeployment'
'c:\Program Files (x86)\x.Int.MIS for BizTalk 2010\3.0' 'BTSSvc*MIS*' "
谁能告诉我如何传递数组?