AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1602401
Accepted
Tono Nam
Tono Nam
Asked: 2020-11-16 11:53:58 +0800 CST2020-11-16 11:53:58 +0800 CST 2020-11-16 11:53:58 +0800 CST

打开 WSL2 中的项目时,VSCode 终端的行为很奇怪

  • 772

如何通过 VSCode 在 WSL2 中打开一个旨在在 Linux 中构建的项目,这真是太好了。但是如果我在 WSL2 上运行相同的命令,终端的行为会有所不同。这是我复制问题的步骤:

  1. 打开 Ubuntu WSL2。这只是打开一个正在运行 ubuntu 的终端
  2. 导航到我要打开的项目cd ~/myapp
  3. 使用 vscode 打开该项目 vscodecode .在 linux 环境中打开。在左下角,它显示“WSL:Ubuntu”。我如何在 linux 上打开项目真的很酷,就像我在哪里使用 linux 计算机一样。
  4. 我打开终端并运行此命令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 上编译和智能感知。

visual-studio-code wsl2
  • 2 2 个回答
  • 8139 Views

2 个回答

  • Voted
  1. Best Answer
    Tono Nam
    2020-11-17T09:03:50+08:002020-11-17T09:03:50+08:00

    终于让它工作了。我将此添加到~/.zshrc. 如果您使用的是 bash,请将其添加到~/.bashrc

    fix_wsl2_interop() {
        for i in $(pstree -np -s $$ | grep -o -E '[0-9]+'); do
            if [[ -e "/run/WSL/${i}_interop" ]]; then
                export WSL_INTEROP=/run/WSL/${i}_interop
            fi
        done
    }
    

    如果它停止工作,我只需调用该函数。

    我从这个链接得到了那个解决方案:https ://github.com/microsoft/WSL/issues/5065

    • 7
  2. FSCKur
    2020-11-30T13:12:35+08:002020-11-30T13:12:35+08:00

    等效于 @tono-nam 的 bash/zsh 修复pwsh:

    function Reset-WslInterop
    {
        param ($ProcessId = $PID)
    
        if (Test-Path /run/WSL/$ProcessId`_interop)
        {
            $env:WSL_INTEROP="/run/WSL/$ProcessId`_interop"
            return
        }
    
        Reset-WslInterop (Get-Process -Id $ProcessId).Parent.Id
    }
    
    • 1

相关问题

  • VSCode JSDoc 类型检查

  • 如何将 VSC 的终端更改为系统默认值

  • 如何一键启动 VS Code 的实时服务器和 Chrome 调试器

  • 重新安装 Visual Studio Code 后无法编译 Java:“NameOfMyClass 已由较新版本的 Java 运行时编译”

  • jEnv 搞乱了 VSCode Java 扩展包

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve