code --install-extension --force可强制覆盖中文语言包,但需确保VSCode完全退出、.vsix版本兼容、在系统终端执行;失败主因是后台进程残留、目录只读或engines.vscode版本过高;安装后须检查扩展启用状态、右下角手动选zh-cn、locale.json严格为{"locale":"zh-cn"}且路径正确。

用 code --install-extension --force 强制覆盖已安装的中文语言包
离线环境下想换新版中文包(比如从 1.90 升到 1.104),但直接重装会报 Extension is corrupt 或静默失败,根本原因是 VSCode 拒绝覆盖同 ID 但结构/签名不一致的旧扩展。必须加 --force 跳过校验。
操作前确保:
– 所有 VSCode 进程已退出(Windows 杀光 Code.exe,macOS/Linux 执行 pkill -f "Code Helper")
– 当前 VSCode 版本与新 .vsix 的 engines.vscode 兼容(打开 .vsix 解压后的 package.json 查字段)
– 命令在终端中执行,不是在 VSCode 内置终端(避免权限或路径干扰)
命令示例:code --install-extension MS-CEINTL.vscode-language-pack-zh-hans-1.104.2025082016.vsix --force
为什么 --force 有时仍不生效?重点查这三点
--force 不是万能钥匙,失效往往卡在环境层:
- VSCode 正在运行且已加载该语言包:哪怕窗口关了,后台进程仍在,必须彻底杀掉
- 目标
~/.vscode/extensions/目录被系统策略设为只读(尤其企业 Windows 组策略或 macOS SIP) -
.vsix声明的最低 VSCode 版本高于当前版本,例如"^1.104.0"要求 VSCode ≥1.104,而你本地是 1.103.2 —— 这种情况--force根本不会触发解压,直接拒绝
覆盖后界面还是英文?别急着重装,先验证激活状态
覆盖安装成功 ≠ 界面变中文。常见假象是文件写进去了,但没注册进扩展系统:
- 打开扩展面板(
Ctrl+Shift+X),搜索ms-ceintl.vscode-language-pack-zh-hans,确认状态是 已启用(不是“已安装”或灰显) - 右下角状态栏点击语言标识,手动选一次
zh-cn(不是zh-hans或zh_CN) - 检查
locale.json文件内容是否严格为{"locale":"zh-cn"}(小写、连字符、双引号、UTF-8 无 BOM) - 重启必须点 Restart,不是 Reload Window —— 后者不重载语言资源
别碰 settings.json 里的 "locale" 字段
这个字段在当前 VSCode 中已被弃用,写进去完全无效,还会干扰 locale.json 的读取逻辑。所有语言配置必须集中在用户级 locale.json,路径如下:
Windows:%APPDATA%\Code\User\locale.json
Linux:~/.config/Code/User/locale.json
macOS:$HOME/Library/Application Support/Code/User/locale.json
写错一个字符(比如大写 ZH-CN、下划线 zh_CN、多空格 "zh-cn ")都会导致整个文件被忽略 —— VSCode 不报错,只是安静跳过。


















