如何通过 VSCode 在 WSL2 中打开一个旨在在 Linux 中构建的项目,这真是太好了。但是如果我在 WSL2 上运行相同的命令,终端的行为会有所不同。这是我复制问题的步骤:
- 打开 Ubuntu WSL2。这只是打开一个正在运行 ubuntu 的终端
- 导航到我要打开的项目
cd ~/myapp
- 使用 vscode 打开该项目 vscode
code .
在 linux 环境中打开。在左下角,它显示“WSL:Ubuntu”。我如何在 linux 上打开项目真的很酷,就像我在哪里使用 linux 计算机一样。 - 我打开终端并运行此命令
powershell.exe 'echo "hello-world"'
。我收到以下错误:
<3>init: (5450) 错误: UtilConnectToInteropServer:300: 连接失败 2
如果我打开 WSL2 并运行相同的命令powershell.exe 'echo "hello-world"'
,它就可以工作。如果使用 vscode 终端,它只是不起作用。奇怪的是它曾经工作过。如果我重新启动计算机,它会开始在 vscode 上工作并最终停止工作。解决方案是使用单独的 WSL2 终端。但是如果我可以使用 vscode 集成终端会很好。
另一种解决方案将不使用 powershell。但我需要使用 powershell,因为 WSL2 不支持 USB。我正在构建一个 esp32 项目。一旦构建,我需要将代码闪存到我的微控制器。我必须通过 Windows 执行此操作,这就是我使用 powershell 的原因。我也可以在 Windows 上构建我的项目,但我已经将所有项目配置为在 linux 上编译和智能感知。
终于让它工作了。我将此添加到
~/.zshrc
. 如果您使用的是 bash,请将其添加到~/.bashrc
如果它停止工作,我只需调用该函数。
我从这个链接得到了那个解决方案:https ://github.com/microsoft/WSL/issues/5065
等效于 @tono-nam 的 bash/zsh 修复
pwsh
: