【问题标题】:Powershell script from Visual Studio Post-build-event failingVisual Studio 生成后事件中的 Powershell 脚本失败
【发布时间】:2011-12-18 08:53:12
【问题描述】:

在 Visual Studio 中将 powershell 脚本作为构建后事件运行会失败,尽管同一脚本在命令行中运行良好。这是为什么呢?

【问题讨论】:

  • 是否有机会展示脚本并解释 failing 的含义(错误消息,实际行为与预期行为不同 - 在这种情况下,请同时描述两者,其他内容)?
  • 对不起,我不希望这个问题有答案!我已经有了答案,只是很难找到而不是 SO,所以我在这里提出了一个问题并自己回答了!
  • 这个错误对我来说真的很模糊“系统无法执行指定的程序”
  • 它也是Post build event execute powershell的一种复制品

标签: visual-studio powershell 64-bit


【解决方案1】:

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

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

本文致谢:https://docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/ff798298(v=office.14),“在 Visual Studio 中使用 Windows PowerShell 脚本自动执行任务”。

【讨论】:

    【解决方案2】:

    很抱歉重新制作了一个古老的问题,但由于我的搜索将我带到了这篇文章,我的分辨率略有不同,我想添加它。

    在我的情况下,问题出在 Windows 10 1903 上的 Visual Studio 2017 CE 上,症状是无法将 powershell 脚本作为构建后事件运行,即使相同的 powershell 从命令行运行时也没有错误特权。

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

    VS 使用的是 32 位版本(不是问题的公认答案中的 64 位版本),而且我没有设置执行策略的是那个 powershell 版本。

    我运行了 PowerShell (x86) 和 Set-ExecutionPolicy Unrestricted,然后我的构建后任务运行良好。

    【讨论】:

      【解决方案3】:

      回答我自己的问题只是为了避免其他人研究这个问题。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-17
        • 1970-01-01
        • 2012-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多