如何在Visual Studio Code x64中运行Powershell x86?

时间:2017-09-18 11:20:56

标签: powershell visual-studio-code

我遇到的情况是我使用64位版本的Visual Studio Code来编写/调试powershell脚本。但是,由于Powershell脚本正在做什么,它需要在32位版本的Powershell中运行。它使用一些lib来访问MS Access文件,所以我还没有找到一种方法让Powershell x64中的东西工作。

如果VS Code本身作为64位运行,有没有办法告诉VS Code运行32位版本的Powershell?例如,我可以修改launch.json文件以指定powershell本身的路径吗?

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "PowerShell",
            "request": "launch",
            "name": "PowerShell Launch Current File",
            "script": "${file}",
            "args": [],
            "cwd": "${file}"
        },
        ...
     ]
}

2 个答案:

答案 0 :(得分:10)

我发现另一种方法更容易,似乎是由VSCode提供的(虽然它可能是我添加的扩展)。在主窗口中,工具栏右侧有一个可点击元素:

enter image description here

单击窗口顶部附近的菜单时会显示一些与PowerShell相关的选项,包括在x86和x64之间切换的功能:

enter image description here

答案 1 :(得分:3)

假设您安装了PowerShell extension,您应该可以将VS代码设置中的powershell.powerShellExePath设置修改为"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe"

我相信你也可以设置"powershell.useX86Host": true。这是在PowerShell扩展v0.5.0中引入的;我不确定我是如何错过它的!

但是,安装64位MS Access组件并使用64位版本可能更容易或更好。

Microsoft Access Database Engine 2010 Redistributable

Microsoft Access 2013 Runtime

Microsoft Access Database Engine 2016 Redistributable

我不知道为什么2013版本有不同的名称,但据我所知,这些是不同版本的相同组件。