WSL2 不能使用 code 打开 VS Code

首先检查 /etc/wsl.conf 配置,如果设置了不追加 Windows 的 PATH,则需要自己额外添加 VS Code 的命令目录到 WSL 中。

# /etc/wsl.conf
[boot]
systemd=true

[interop]
appendWindowsPath=false
# ~/.bashrc 或者其他配置文件
export PATH="/mnt/c/Users/xxx/AppData/Local/Programs/Microsoft VS Code/bin:$PATH"

如果报错:

/mnt/c/Users/xxx/AppData/Local/Programs/Microsoft VS Code/bin/code: 61: /mnt/c/Users/xxx/AppData/Local/Programs/Microsoft VS Code/Code.exe: Exec format error

则可能是新版 WSL 的 systemd 打包问题。(参考 https://github.com/microsoft/WSL/issues/8952#issuecomment-1568212651

sudo sh -c 'echo :WSLInterop:M::MZ::/init:PF > /usr/lib/binfmt.d/WSLInterop.conf'
sudo systemctl restart systemd-binfmt