Visual Studio Post-build-event失败的Powershell脚本

时间:2011-10-30 21:11:42

标签: visual-studio powershell 64-bit

尽管从命令行运行相同的脚本,但在Visual Studio中运行powershell脚本作为后期构建事件仍然失败。这是为什么?

3 个答案:

答案 0 :(得分:0)

回答我自己的问题只是为了拯救他人研究这个问题的痛苦。

http://www.vistax64.com/powershell/205436-running-powershell-post-build-event-ignoring-executionpolicy.html表明,尽管Visual Studio是32位,但它运行独立的powershell的64位版本。

现实看来,Visual Studio运行Windows \ syswow64版本的Powershell(32位!?),而正常的Powershell命令提示符将默认为Windows \ system32版本(64位?!)。您需要单独设置执行策略等。

答案 1 :(得分:0)

(这个帖子不是新的,但是我从谷歌来到这里,所以我认为分享我发现的解决方案会让其他人感兴趣)

我尝试将powershell.exe的路径更改为“%WINDIR%\ SysNative \ WindowsPowerShell \ v1.0 \ powershell.exe”,它完美无缺。从Post Build事件调用64位版本,并成功添加SharePoint管理单元。

致于本文:http://msdn.microsoft.com/en-us/library/ff798298.aspx,“使用Windows PowerShell脚本在Visual Studio中自动执行任务”。

答案 2 :(得分:0)

很抱歉,您需要重新制作一个古老的问题,但是由于我的搜索将我带到了这篇文章,而且我的解决方案略有不同,因此我想添加它。

就我而言,问题出在Windows 10 1903上的Visual Studio 2017 CE上,并且症状是无法将Powershell脚本作为生成后事件运行,即使相同的Powershell在没有错误的情况下从命令行运行特权。

我退出时遇到了错误1,但可以看到脚本实际上并未在运行。

VS使用的是32位版本(而不是根据问题的公认答案使用的是64位版本),而Powershell的构建并未启用执行策略。

我不受限制地运行PowerShell(x86)和Set-ExecutionPolicy,然后我的构建后任务运行正常。