当我尝试在 WSL Ubuntu 中从 Visual Studio Code 运行
code
命令时遇到问题。我收到以下错误:
$ code .
/mnt/c/Users/Name/.vscode/extensions/ms-vscode-remote.remote-wsl-0.64.2/scripts/wslCode.sh: 63: /mnt/c/Users/Name/.vscode/extensions/ms-vscode-remote.remote-wsl-0.64.2/scripts/wslCode.sh: /home/barry/.vscode/bin/899d46d82c4c95423fb7e10e68eba52050e30ba3/bin/remote-cli/code: not found
当我运行以下命令时,它会安装 VS Code 服务器并且该命令按预期工作:
$ /mnt/c/Users/Name/AppData/Local/Programs/Microsoft\ VS\ Code/bin/code .
当我运行
which -a code
时,我可以看到我有两个与此命令相关的路径,并且我相信正确的路径是/mnt/c/Users/Name/AppData/Local/Programs/Microsoft VS Code/bin/code
,但我不知道如何删除第一个路径,也不知道它如何将两个路径与首先这个命令?
barry@RandomName:~$ which -a code
/mnt/c/Program Files/Microsoft VS Code/bin/code
/mnt/c/Users/Name/AppData/Local/Programs/Microsoft VS Code/bin/code
有人可以帮忙吗?
5 分钟前遇到了同样的问题,thesteve0 的这篇文章对我有用:
https://github.com/microsoft/vscode-remote-release/issues/6294#issuecomment-1031974516
引用原帖:
一个简单的
sudo apt update -y
,然后重新运行code .
为我解决了这个问题。
我已经成功地通过创建一个指向正确目录的新符号链接来“解决”这个问题,这样这个符号链接就会首先运行。我找不到删除错误目录的方法,因此如果有人知道更干净的解决方案,我将不胜感激?
为了添加符号链接,我运行了
ln -s /mnt/c/Users/Name/AppData/Local/Programs/Microsoft\ VS\ Code/bin/code /usr/local/bin/code
所以现在我有代码命令的这 3 个路径:
$ which -a code
/usr/local/bin/code
/mnt/c/Program Files/Microsoft VS Code/bin/code
/mnt/c/Users/Name/AppData/Local/Programs/Microsoft VS Code/bin/code
每当我尝试删除
rm
或 unlink
/mnt/c/Program Files/Microsoft VS Code/bin/code
(使用 sudo
)时,我都会收到 权限被拒绝。
在 Windows 上正常运行 Vscode 即可。这将加载 wsl 扩展并解决问题。
我遇到过这个问题,并且解决了:
wsl
rm -rf ~/.vscode-server
logout
离开 wsl 环境wsl --shutdown
保持简单的S*upid方法:
apt update && yes | apt upgrade
您应该看到类似以下内容:
Updating VS Code Server to version 5554b12acf27056905806867f251c859323ff7e9
Removing previous installation...
Installing VS Code Server for x64 (5554b12acf27056905806867f251c859323ff7e9)
就我而言,VS Code 中的扩展并未处于需要重新加载的状态,如最多支持的答案。多次尝试后有什么帮助:
wsl -t Ubuntu
(将 Ubuntu
替换为您的发行版名称)wsl -l -v
在我的例子中,命令
code
开始可以通过Windows目录访问:/mnt/c/Users/username/AppData/Local/Programs/Microsoft VS Code/bin/code
在 C:\Users
在 WSL 中运行:代码。
我安装了两个版本的 Visual Studio Code,其中一个版本为“(用户)”。我卸载了两者并通过 winget 安装了最新版本。
这为我解决了问题。
我的电脑上安装了两个不同版本的 Visual Studio Code。 我已经卸载了旧版本保留最新版本。 这为我解决了问题。
我尝试避免在 WSL 中使用 Windows PATH。我向我的
~/.bashrc
添加了手动别名,例如对于code .
:
alias code='"/c/Program Files/Microsoft VS Code/bin/code" .'
最近更新后,当我尝试使用
code .
从 wsl (Ubuntu-22.04) 启动 vs-code 时,我开始收到错误消息
/mnt/c/Users/user/AppData/Local/Programs/Microsoft VS Code/bin/code: 61: /mnt/c/Users/user/AppData/Local/Programs/Microsoft VS Code/Code.exe: Exec format error
我尝试了此页面上的许多建议,但问题仍然存在。
从 Windows 启动代码按预期工作并连接到 WSL
有任何线索如何解决或至少诊断这个问题吗?
我遇到了同样的错误,但任何答案都对我有用,直到我在 github 上看到这个问题。
确保您不使用任何依赖于systemd的软件,例如snap、microk8s等
https://github.com/microsoft/WSL/issues/8952
引用原帖:
“在 /etc/wsl.conf 中禁用 systemd 支持可以解决该问题。”
/etc/wsl.conf(确保您不使用任何依赖于systemd的软件,如snap、microk8s等)
[boot]
#systemd = true
只需注释“systemd”并重新启动 wsl