离线安装vscode中文包报“corrupt”主因是vsix结构损坏、package.json版本不匹配或插件id错误;需用unzip -t/expand-archive校验完整性,确保id为ms-ceintl.vscode-language-pack-zh-hans、版本号与code --version前两位一致,并设"locale":"zh-hans"。

离线安装 VSCode 中文语言包提示“Extension is corrupt”,90% 不是文件真损坏,而是 package.json 版本声明不匹配、ZIP 结构被破坏、或插件 ID 用错——它根本没走到解压环节,VSCode 就在加载前直接拒绝了。
检查 vsix 是否真损坏:别信文件大小,用 unzip -t 验证
Windows 资源管理器右键重命名 .zip → .vsix 会破坏 ZIP 文件头,VSCode 拒绝解析但只报“corrupt”。必须用命令行校验结构完整性:
- Linux/macOS:
unzip -t MS-CEINTL.vscode-language-pack-zh-hans-1.90.2.vsix—— 输出OK才算完整 - Windows PowerShell:
Expand-Archive MS-CEINTL.vscode-language-pack-zh-hans-1.90.2.vsix -WhatIf—— 不报错即结构可用 - 若报
broken或missing,重下。别试图用--force强装,它救不了物理损坏
确认插件 ID 和版本是否匹配当前 VS Code
中文包不是通用的,MS-CEINTL.vscode-language-pack-zh-hans 这个 ID 必须一字不差;且 .vsix 后缀里的版本号(如 1.90.2)要和你本地 code --version 输出的主版本一致(取前两位,如 1.91.0-insider → 需 1.91.x 包)。
- 打开
.vsix(用 7-Zip 或unzip -p xxx.vsix extension/package.json),查"engines": {"vscode": "^1.85.0"} - 若你本地是
1.91.0-insider,但包里写的是^1.90.0,就需手动改package.json为^1.91.0,再重新打包成 ZIP → 改后缀为.vsix - 第三方包(如发布者不是
MS-CEINTL)在 VS Code 1.85+ 后基本失效,它们缺少contributes.localizations声明或vs/nls.js兼容支持
装完重启还是英文?重点查 locale 设置和启动方式
语言包装上 ≠ 自动生效。VS Code 启动时必须同时满足:插件已安装、locale 配置正确、且启动实例能加载对应 nls bundle。
-
settings.json里删掉手写的"locale": "zh-cn"—— 正确值只能是"zh-hans",写错就报invalid locale value - 双击桌面快捷方式可能启动旧版 VS Code(比如残留的 1.72.x);关掉所有进程(包括系统托盘里的
Code Helper),再从开始菜单/应用坞启动 - Windows 若系统区域设为英语 + 开了 “Beta: Use Unicode UTF-8”,VS Code 会跳过语言包加载;macOS/Linux 检查终端里
echo $LANG是否为en_US.UTF-8并覆盖了自动探测
最常被忽略的一点:中文包依赖 VS Code 内置的 vs/nls.js 模块做运行时字符串替换,而该模块在 ≤1.75 版本默认不启用。如果你用的是老版本 VS Code,换新包也没用——必须升到 1.76+ 才有基础支持。











