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

8
我有一个情况,我正在使用64位的Visual Studio Code编写/调试powershell脚本。然而,由于powershell脚本正在处理的内容,它需要在32位的Powershell版本下运行。它正在使用一些库来访问MS Access文件,因此我尚未找到在Powershell x64中使事情正常工作的方法。
是否有一种方法可以告诉VS Code在64位下运行时运行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}"
        },
        ...
     ]
}
3个回答

15
我发现了另一种更简单的方法,看起来是由VSCode提供的(虽然可能是我添加的扩展)。在主窗口中,工具栏右侧有一个可点击的元素:

在这里输入图片描述

当您单击它时,一个菜单出现在窗口顶部附近,包括一些与PowerShell相关的选项,包括在x86和x64之间切换的能力:

在这里输入图片描述


2
我唯一安装的扩展是 PowerShell 和一个图标扩展,因此我愿意相信它是 PowerShell 扩展本身的一部分。 - Bacon Bits
糟糕,这刚刚发生在我身上。我忘记了之前已经设置为x86来处理办公相关的事情了。 - KySoto
我使用的是VS Code v. 1.71.2版本,并安装了Powershell扩展,但我没有看到这个按钮... - Rye bread

4
假设您已安装PowerShell扩展,您应该能够修改VS Code设置中的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版本有一个不同的名称,但据我所知,这些是不同版本的相同组件。


如果您已经安装了32位版本的Office,则无法安装64位MS Access组件。这是我之前想要安装64位组件时遇到的问题,而且我没有64位的Office可供使用,也没有升级的必要,因为我正在使用的Office 2010对我来说仍然完美无缺,除了这个问题。 - SuperDre
@SuperDre,不确定为什么这对你不起作用,但我百分之百以前做过。这是我们在以前的工作中部署到网络上的应用程序安装的一部分,它总是与32位Office一起安装(因为每个工作站都安装了它)。 - Bacon Bits
你确定你是在32位版本旁边安装x64版本吗?因为我在安装过程中收到的消息非常清楚:“您不能安装64位版本的MS ADE2010,因为您当前已安装32位办公产品。如果要安装64位MS ADE 2010,则首先需要删除32位Office产品的安装。”然后它告诉我需要删除的32位版本是:“Microsoft Office Standard 2010”。 - SuperDre
我非常确定。虽然已经过了很长时间,但我确信我们做过这个(https://dev59.com/H57ha4cB1Zd3GeqPqevz)或者这个(https://dev59.com/cJfga4cB1Zd3GeqPBtjR)或者这个(https://knowledge.autodesk.com/support/autocad/learn-explore/caas/sfdcarticles/sfdcarticles/How-to-install-64-bit-Microsoft-Database-Drivers-alongside-32-bit-Microsoft-Office.html)或者这个(https://ginesys.atlassian.net/wiki/spaces/PUB/pages/66617405),或类似的事情。 - Bacon Bits
感谢提供额外信息,这个链接解决了问题。但是我发现64位的ACE.OLEDB.12.0驱动比32位的慢得多,所以我现在将使用32位的ACE.OLEDB.12.0驱动和32位的PowerShell代替Jet.OLEDB.4.0驱动程序。但至少现在我可以同时使用32位和64位。 - SuperDre

0
您可以在底部栏中单击'{}'文本,然后单击“显示PowerShell会话菜单”。 这应该会提供一些不同的Powershell .exe选项(x86等),具体取决于系统上安装了什么。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接