2011-12-19 136 views
4

我有我的生成後事件命令行命令在Visual Studio 2010PowerShell命令生成後VS2010

Powershell -command .'$(SolutionDir)Powershell\MoveFiles.ps1'

,當事件運行時,我得到一個錯誤的命令「和退出代碼1「。

但是,當我在命令行上運行相同的命令(參見下文)時,使用實際目錄而不是VS2010宏,它可以很好地工作。

Powershell -command .'C:\TFS\MyProject\Main\Source\Powershell\MoveFiles.ps1'

如此看來,問題在於VS2010是如何執行命令。

什麼可能導致此問題?

[UPDATE]

我還試圖改變生成後事件到:

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Powershell -command .'C:\TFS\MyProject\Main\Source\Powershell\MoveFiles.ps1'我也得到與上述相同的結果。它從命令行運行,但不是從VS 2010運行。

+0

相同的結果:在完美的工作,或者給你一個錯誤? – 2011-12-19 23:09:04

+0

@Zespri thx。修正了帖子。 – khr055 2011-12-19 23:13:49

+0

在Visual Studio中構建並獲取錯誤。然後從頂部菜單中選擇「查看」並選擇「輸出」。輸出窗口會出現。檢查窗口中的內容,如果原因仍不清楚,請在此輸出。乾杯。 – 2011-12-19 23:25:37

回答

4

兩件事情:

  1. 使用,而不是-command參數-file參數。
  2. 使用雙引號。

powershell.exe -file "$(SolutionDir)Powershell\MoveFiles.ps1"

3

如果您在64位操作系統上運行,則需要指定64位版本的PowerShell的完整路徑,因爲Visual Studio是32位應用程序。

this question有一個解決問題的辦法。