插件安装失败主因是扩展系统崩溃、路径权限异常、市场源配置错误或签名验证失败;中文用户易在用户名含中文、sudo残留权限、dns污染导致tls握手失败处出错。

插件安装失败不是“网络慢”或“运气差”,而是 VS Code 在扩展系统、路径权限、市场源、签名校验四个环节中某一个卡住了——中文用户尤其容易在路径含中文、系统代理未生效、镜像源配置错位这三处翻车。
为什么中文用户更容易遇到安装失败
Windows 用户若用户名是中文(如 C:\Users\张三),VS Code 启动时会把路径传给 Node.js 子进程,未做 URI 编码就直接解析,导致 extensions 目录创建失败或写入中断;macOS/Linux 下若 ~/.vscode/extensions 所有者是 root(比如曾用 sudo code 启动过),普通用户就无法写入新插件;另外,国内 DNS 对 marketplace.visualstudio.com 的污染会让请求静默失败,你看到的“安装中…”其实是卡在 TLS 握手阶段。
- 检查路径是否含中文/空格:Windows 上打开命令行执行
echo %USERPROFILE%,确认不包含中文字符 - 修复权限(macOS/Linux):
ls -ld ~/.vscode/extensions,若显示root,运行sudo chown -R $USER:$GROUPS ~/.vscode/extensions - 删临时目录:
rm -rf ~/.vscode/.extensions-tmp(Linux/macOS)或del /q "%USERPROFILE%\.vscode\.extensions-tmp"(Windows)
换源必须改对这两个字段
VS Code 1.85+ 默认尝试连 open-vsx.org,但国内 DNS 常解析失败,fallback 到已停用的旧地址,结果是静默 404。直接改 http.proxy 没用,因为 Marketplace 请求走独立网络栈,必须精准替换 gallery 配置。
- 关闭 VS Code,编辑
settings.json - 添加或修改这两行(注意逗号分隔,末尾不能少
/):"extensions.gallery.serviceUrl": "https://vscode-ext.oss-cn-shenzhen.aliyuncs.com/gallery/""extensions.gallery.itemUrl": "https://vscode-ext.oss-cn-shenzhen.aliyuncs.com/gallery/item" - 别用
https://marketplace.visualstudio.com开头的地址——它在国内基本不可达,且新版 VS Code 已不兼容该格式
手动装 .vsix 却提示 “Unable to load extension”
这不是文件损坏,而是 VS Code 加载前仍会尝试联网校验签名。哪怕你断网拖进来了,它也会先发请求,失败后才退到本地加载,而这个过程可能被跳过或中断。
- 必须先断网(拔网线或关 Wi-Fi),再启动 VS Code,再拖入
.vsix文件 - 或者临时禁用校验:
"extensions.installVerification": false(仅调试用,验证完立刻删) - 检查
.vsix解压后的package.json中engines.vscode字段,例如你本地是1.92.0,但插件写的是^1.94.0,就得手动改成^1.92.0再重打包 - 重打包必须用
zip命令或 7-Zip,Windows 资源管理器双击解压再重命名会破坏 ZIP 结构
中文语言包装了但界面还是英文
不是插件没装上,是 VS Code 根本没“决定”用它。语言包只是翻译素材库,真正控制界面语言的是 locale.json 文件,而唯一能写入它的标准操作是 Configure Display Language 命令。
- 按
Ctrl+Shift+P输入并执行Configure Display Language,选zh-cn(不是zh、zh-hans或模糊匹配项) - 弹出提示后必须点
Restart——仅重载窗口(Developer: Reload Window)无效 - 确认
locale.json路径和内容正确:
Windows:%APPDATA%\Code\User\locale.json
macOS:~/Library/Application Support/Code/User/locale.json
Linux:~/.config/Code/User/locale.json
内容只能是:{"locale": "zh-cn"}(小写、双引号、无多余空格)
最容易被忽略的是:VS Code 的语言切换和插件启用是两套独立机制。即使你禁用了所有其他插件,只要没运行 Configure Display Language 并重启,中文就不会出现——这不是 Bug,是设计如此。











