vscode 1.70+禁用双击安装.vsix,须用命令面板执行“extensions: install from vsix”;装完需手动创建locale.json(路径因系统而异),内容严格为{"locale": "zh-cn"};远程开发需在远程环境重复配置并重载窗口。

双击或拖拽.vsix文件没反应,根本不是安装失败
VSCode 自 1.70 版起已禁用直接加载机制,双击或拖进窗口只是把文件复制到 ~/.vscode/extensions/(Linux/macOS)或 %USERPROFILE%\.vscode\extensions\(Windows),但不会注册扩展 ID、不触发语言资源加载流程。现象是:右下角仍显示 en,设置页、命令面板、调试面板全英文,且无任何错误提示。
必须走命令面板执行 Extensions: Install from VSIX——这是唯一能真正注册语言包的路径。验证是否成功:打开扩展面板,搜索 ms-ceintl.vscode-language-pack-zh-hans,确认状态为“已启用”;若未出现或显示“已禁用”,说明根本没注册进去。
装完还是英文?检查 locale.json 是否存在且写对
语言包装成功 ≠ 界面变中文。VSCode 只认 locale.json 里写的值,这个文件是唯一生效的语言开关,settings.json 里写的 "locale" 字段完全无效。
- 路径必须准确:
Windows:%APPDATA%\Code\User\locale.json
macOS:~/Library/Application Support/Code/User/locale.json
Linux:~/.config/Code/User/locale.json - 内容必须严格为:
{"locale": "zh-cn"}(小写、短横线、双引号、UTF-8 无 BOM 编码) - 别写成
zh_CN、zh-hans、Chinese或带空格的"zh-cn ",VSCode 会直接忽略该字段
报“签名无效”或卡在“Installing…”?改 package.json 的 engines 字段
VSCode 1.85+ 启用扩展签名验证,离线环境下无法联网校验,会静默失败或卡住不动。本质不是签名问题,而是 package.json 中的 "engines": {"vscode": "^1.90.0"} 与你本地版本(如 1.96.3)不满足语义化匹配。
实操步骤:
- 用
7-Zip或unzip -l your.vsix查看根目录是否含extension/package.json - 解压该文件(别用 Windows 资源管理器双击解压,会破坏 ZIP 结构)
- 编辑
extension/package.json,将"engines": {"vscode": "^1.90.0"}改为"engines": {"vscode": "1.96.3"}(填你本地code --version输出的完整版本号) - 重新打包为 ZIP,再把后缀改为
.vsix(不是重命名,是改后缀;确保 ZIP 内结构不变) - 再通过命令面板执行
Extensions: Install from VSIX
远程开发或虚拟机里仍为英文?本地配置对远程完全无效
你在宿主机或本地装了中文包、改了 locale.json,对 Remote-SSH / WSL / 虚拟机里的 VS Code Server 实例毫无影响——它读的是远程环境自己的配置。
必须在远程终端中操作:
- 确认语言包已安装:
code --list-extensions | grep zh-hans - 定位远程配置目录:
~/.vscode-server/data/Machine/下带哈希名的子目录(若不存在,先开个远程文件夹再试) - 在该子目录下新建或编辑
locale.json,内容仅一行:{"locale": "zh-cn"} - 回到 VSCode 远程窗口,按
Ctrl+Shift+P→ 输入Developer: Reload Window(注意是远程窗口,不是本地)
最容易被忽略的是:远程机器上没有图形界面时,locale.json 必须手动写入正确路径,且 VS Code Server 进程必须重启干净——杀掉所有 Code Helper 或 Electron 进程后再启动。











