我上周花了很多时间开发一个Powershell脚本。当我从Powershell窗口启动它时它现在可以正常工作了。但是,我需要从TFS构建调用脚本。我尝试使用语法 Powershell&来自TFS Build InvokeProcess控件的'script'但似乎没有任何事情发生。所以,我已经回到基础并创建了以下脚本:
Write-Host " Write-Host line"
Write-eventlog -logname "Application" -source "BizTalkDeployment" -eventId "01" -entrytype "Information" -message "test"
我已将脚本保存为c:\ temp \ ps_test.ps1。我以管理员的身份打开了一个命令窗口并尝试了以下内容:
powershell & 'c:\temp\ps_test.ps1"
这会将命令行置于PowerShell模式,我得到:
PS c:\>
但没有其他事情发生。
在我的TFS构建结束时,我有一个InvokeProcess控件,它的FileName属性使用“Powershell”,然后是以下参数:
String.Format(" ""& '{0}' '{1}' '{2}' '{3}' '{4}' '{5}' '{6}' '{7}' '{8}' '{9}' "" ", DeploymentScriptFileName, IO.Path.GetDirectoryName(DeploymentScriptFileName), "ExecuteBizTalkAppMSI.ps1", "bin\debug\x.Int.MIS-3.0.0.msi", "x.Int.MIS.Deployment.btdfproj", TargetServerPath, "d-vasbiz01", "c:\biztalkdeployment", "C:\Program Files (x86)\x.Int.MIS for BizTalk 2010\3.0", "BTSSvc*MIS*")
构建脚本运行正常,但InvokeProcess控件似乎什么都不做 - 就像我使用命令行一样。
有人能看到我出错的地方吗?
答案 0 :(得分:3)
无论
powershell -file C:\temp\ps_test.ps1
或
powershell "&{ <# code here #> }"