我在Visual Studio 2010中的post-build事件命令行中有一个命令
Powershell -command .'$(SolutionDir)Powershell\MoveFiles.ps1'
当事件运行时,我收到错误,命令“退出代码1。”
但是当我在命令行上运行相同的命令(见下文)时,使用实际目录而不是VS2010宏,它可以很好地工作。
Powershell -command .'C:\TFS\MyProject\Main\Source\Powershell\MoveFiles.ps1'
所以似乎问题在于VS2010如何执行命令。
可能导致此问题的原因是什么?
[UPDATE]
我也尝试将post-build事件更改为:
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Powershell -command .'C:\TFS\MyProject\Main\Source\Powershell\MoveFiles.ps1'
我得到与上述相同的结果。它从命令行运行时有效,但不能从VS 2010运行。
答案 0 :(得分:4)
两件事:
-file
参数代替-command
参数。 powershell.exe -file "$(SolutionDir)Powershell\MoveFiles.ps1"
答案 1 :(得分:3)
如果您在64位操作系统上运行,则需要指定64位版本的powershell的完整路径,因为Visual Studio是一个32位应用程序。
this question中有一个答案可以解决问题。