VS Code Server for WSL 意外关闭

Jos*_*eph 8 visual-studio-code windows-subsystem-for-linux

我正在尝试使用 VS 代码在 WSL(Ubuntu-18.04 发行版)系统上运行 Python 项目。我安装了 WSL - Remote plugin v0.39.9。运行命令时:

code .
Run Code Online (Sandbox Code Playgroud)

收到错误:

/home/username/.vscode-server/bin/6ab598523be7a800d7f3eb4d92d7ab9a66069390/bin/code: 12: /home/username/.vscode-server/bin/6ab598523be7a800d7f3eb0code9d9023be7a800d7f3eb4ab4name/bin/home/code9d9022 6ab598523be7a800d7f3eb4d92d7ab9a66069390/节点:执行格式错误

当我在 VS Code 中尝试连接到 WSL 实例时:

在 WSL (Ubuntu-18.04) 内启动 VS Code Server 扩展版本:0.39.9,Windows 版本:18362。多发行版支持:启用。WSL 路径支持:为 WSL 启用的 VS Code 服务器意外关闭。

这是VS Code的信息:

Version: 1.39.2 (user setup)
Commit: 6ab598523be7a800d7f3eb4d92d7ab9a66069390
Date: 2019-10-15T15:35:18.241Z
Electron: 4.2.10
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Windows_NT x64 10.0.18362
Run Code Online (Sandbox Code Playgroud)

And*_*tel 52

这对我有用:

  • 在 wsl 提示符内,我使用删除了主目录中的 .vscode-server 文件夹rm -rf ~/.vscode-server
  • 使用 WSL 生成 vscode code ~,这导致重新安装 VS Code Remote

致谢 Gustavo Gondin: https://ggondim.medium.com/vs-code-server-for-wsl-close-unexpectedly-8672b28cc11f

  • 这对我有用,但对其他人来说是一个警告:请注意,这也会删除您可能在 WSL 环境中安装的任何远程扩展。幸运的是,VS Code 会在下次启动时指示它缺少一些远程扩展,但安全总比后悔好,并为此做好准备。 (9认同)

Kot*_*tka 19

问题可能是您的 WSL 上有一个过时的 VS Code 服务器,并且选择了 docker(而不是 Linux 版本)作为您的默认 WSL 发行版?

\n

解决方案:

\n

1. \n打开 PowerShell 并运行wsl -l -v并检查星号*表明 Ubuntu(或其他 Linux 发行版)是您的默认 WSL 发行版。

\n
* Ubuntu-20.04           Running         2\n  docker-desktop-data    Running         2\n  docker-desktop         Running         2\n
Run Code Online (Sandbox Code Playgroud)\n

如果没有,请在 PowerShell 中运行wslconfig /setdefault <Your WSL Linux distro>

\n

2.选择正确的 WSL 发行版后,打开 VSCode,按Ctrl+Shift+P,然后键入Remote-WSL: New WSL Window。这将更新 WSL Linux 发行版上的 VS Code Server。

\n

3. code .现在应该在 WSL 中工作

\n

我在更新 VSCode 后也出现了类似的问题。当我尝试从 Ubuntu 打开 VSCode 并收到以下错误时,我识别出了它:

\n
~$ code .\nUpdating VS Code Server to version 507ce72a4466fbb27b715c3722558bb15afa9f48\nRemoving previous installation...\nInstalling VS Code Server for x64 (507ce72a4466fbb27b715c3722558bb15afa9f48)\nDownloading: 100%\nFailed\n--2021-06-29 10:48:51--  https://update.code.visualstudio.com/commit:507ce72a4466fbb27b715c3722558bb15afa9f48/server-linux-x64/stable\nResolving update.code.visualstudio.com (update.code.visualstudio.com)... failed: Temporary failure in name resolution.\nwget: unable to resolve host address \xe2\x80\x98update.code.visualstudio.com\xe2\x80\x99\nERROR: Failed to download https://update.code.visualstudio.com/commit:507ce72a4466fbb27b715c3722558bb15afa9f48/server-linux-x64/stable to /home/username/.vscode- server/bin/507ce72a4466fbb27b715c3722558bb15afa9f48-1624952921.tar.gz\n
Run Code Online (Sandbox Code Playgroud)\n


Dou*_*oug 12

我通过关闭wsl然后在powershell中重新启动它来解决这个问题。

wsl --shutdown
wsl
Run Code Online (Sandbox Code Playgroud)

  • 我真的希望 WSL 能够达到“您是否尝试过将其关闭然后再次打开?”的成熟度。并不是 60% 问题的正确解决方案。 (7认同)

Seb*_*ian 6

我遇到了同样的问题,结果发现我有默认的docker-desktop-data. 该发行版没有 shell 环境,因此您可以将默认发行版设置为docker-desktop替代并避免安装任何内容:

C:\> wsl -l -v
  NAME                   STATE           VERSION
* docker-desktop-data    Running         2
  docker-desktop         Running         2
C:\> wsl -s docker-desktop
C:\> wsl -l -v
  NAME                   STATE           VERSION
* docker-desktop         Running         2
  docker-desktop-data    Running         2
Run Code Online (Sandbox Code Playgroud)

然后,WSL vscode 扩展执行的命令将要求node安装在该 wsl 中,并且它将失败。

然后你意识到这里需要做一些额外的事情,而且它不会开箱即用。您可以使用以下命令选择或安装所需的 wsl:

  • 选择“使用发行版” 项目清单
  • 如果没有,请安装一个新的: 选择

这将带您前往微软商店。我建议安装 Alpine 发行版,这是您可能会发现的轻量级发行版。