Visual Studio生成事件后的Powershell脚本失败

问题描述 投票:0回答:3

尽管在命令行中可以正常运行相同脚本,但在Visual Studio中将Powershell脚本作为生成后事件运行失败。为什么会这样?

visual-studio powershell 64-bit
3个回答
0
投票

回答我自己的问题只是为了减轻他人研究它的痛苦。

Well 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位?!)。您需要为此单独设置执行策略等。


0
投票

((该线程不是新话题,但我是从Google来的,所以我认为与他人分享我发现的解决方案很有趣)

我尝试将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中自动执行任务”。


0
投票

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

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

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

VS使用的是32位版本(不是按照问题的公认答案使用64位版本,而是Powershell的构建,我没有将执行策略设置为打开。

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

© www.soinside.com 2019 - 2024. All rights reserved.