几个星期以来,我遇到了这个非常奇怪的问题,无法解决:
我通常在WSL 2上编码,它在这台机器和用户上工作得很好。但是现在,每当我尝试在Visual Studio Code中打开远程资源管理器或尝试在IntelliJ IDE中打开“从现有文件新建项目”时,都不会显示WSL Distro。
它们仍然存在-wsl -l -v
列出了它们,我可以在终端中打开它们。里面的一切都可以工作(除了打开VSCode)。
在Windows资源管理器中,它们的文件系统会显示出来。但是在Visual Studio Code中,Distro列表是空的,当我打开远程资源管理器时,我收到一条错误消息,指出 “Cannot read properties of undefined(阅读'name')"。在IntelliJ IDE中,只有我的本地驱动器出现在曾经有WSL附加条目的地方。
当我在终端中导航到WSL中的一个目录,然后执行code .
时,它打开了一个VSCode窗口,但随后我得到了通知“No WSL distros found”。
有趣的是,以前在IntelliJ IDE中打开的项目仍然可以打开(但我遇到了行结束问题)。
我已经尝试在VSCode中重新安装WSL扩展,重新启动LXSSManager-Service,使用netsh winsock reset
,netsh int ip reset
,ipconfig /release
,ipconfig /renew
,ipconfig /flushdns
进行网络重置-我已经尝试完全重新安装VSCode。但毫无结果我还查看了Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\
下WSL Distros的注册表项,它们看起来很好。
我还重新安装了我的非主要发行版-所有安装的发行版,旧的或新安装的都有同样的问题。
遗憾的是,我无法指定如何重现这个问题,因为在这个设置中,一切都可以正常工作,没有任何故意改变。
Windows版本是Windows 11 Version 22H2 (OS Build 22621.963)
。
1条答案
按热度按时间bt1cpqcv1#
TLDR:尝试运行
setx WSL_UTF8 0
在xml.exe并重新启动VS Code我也有同样的
No WSL distros found
问题突然在VS代码1.81.1和以前的版本。上周我在Ubuntu 16.04中的项目中运行得很好。我尝试了类似的安装新的发行版和WSL扩展和VS代码,但没有任何区别。
改变的是WSL调试终端名称被篡改:
位于https://github.com/microsoft/vscode-remote-release/issues/3910#issuecomment-722269579的代码返回空白,但需要来自
wsl -l
的UTF 16,因此VS Code与新的WSL_UTF8环境变量不兼容。https://stackoverflow.com/a/76970840/1919793中提供了在批处理脚本中使用WSL_UTF8选项的安全方法示例