我有一個TFS 2010版本,它調用了部署的powershell腳本。我已經爲構建腳本定義了幾個參數,並且這些參數工作得很好。它們由構建使用,並且還包含在通過InvokeProcess控件的Arguments屬性傳遞給Powershell的參數中。TFSBuild將參數中的數組包含到powershell中
我現在有PowerShell腳本部署到服務器的數目可變的要求,所以我想,通過服務器的ID從TFS參數列表上。
在構建定義,我已經宣佈了一個名爲字符串[]類型的TargetServers新的說法。在執行構建之前,我已經從「構建過程參數」對話框中填充了此信息。
我已經設置了InvokeProcess控制「Powershell的」的FileName屬性和參數屬性,如下所示:
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)
我的問題是,TargetServers參數傳遞給PowerShell是簡單地System.String [ ]。
從生成日誌,我可以看到調用過程控制的輸出如下:
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*' "
任何人都可以請告知如何傳遞數組?
感謝您回答Powershell問題的一面。我現在需要知道如何讓TFS顯示數組逗號分隔的內容。 – 2012-08-08 10:01:38
'string.Join(「,」,TargetServers.Select(s =>「'」+ s +「'」))'也許? – Joey 2012-08-08 10:08:48
我得到一個編譯錯誤。我必須暫時對服務器進行硬編碼,然後當我有更多時間時再回來。感謝您的嘗試。 – 2012-08-08 10:52:30