直接拷贝.vscode/extensions文件夹无效,因vs code启动时需校验签名、匹配版本并注册扩展;正确方法是用vsce download下载官方.vsix包,再通过ui安装并配置locale.json。

直接拷贝 .vscode/extensions 文件夹为什么不行
它不是安装包,只是解压后的运行时目录。VS Code 启动时会检查 .metadata 注册记录、校验签名、匹配主版本号(比如 1.104.0),手动复制过去既没注册、也没触发激活逻辑,重启后不会加载,也不出现在扩展列表里。
常见错误现象:文件夹已存在、插件名看着对、但命令面板搜不到 Configure Display Language,或点开仍是英文界面。
- 不同 VS Code 主版本(如
1.103和1.104)之间扩展结构可能不兼容 - Windows/macOS/Linux 下的 native 二进制模块(如语言服务器的
.node文件)互不通用 - arm64 和 x64 架构插件文件夹完全不能混用
- 部分插件首次启动会生成缓存路径或写入用户数据目录,直接拷贝会导致静默失效
怎样从已装环境提取出真正能用的 .vsix
唯一可靠路径是反向还原:先拿到插件 ID 和版本,再从 Marketplace 拉标准 .vsix。不能靠压缩当前 extensions 目录“打包”出来。
操作分三步:
- 在联网机上运行
code --list-extensions --show-versions,输出形如MS-CEINTL.vscode-language-pack-zh-hans@1.104.2025082016的行,保存为 UTF-8 编码的extensions.txt - 用
vsce download MS-CEINTL.vscode-language-pack-zh-hans@1.104.2025082016下载官方签名包(需提前npm install -g vsce) - 验证下载的
.vsix内部package.json中"engines": {"vscode": "^1.104.0"}与目标机code --version主版本一致
code --install-extension xxx.vsix 命令在离线机上常失败的原因
这个命令依赖 VS Code 后台服务进程在线校验签名和 marketplace 元数据,离线环境下默认会卡住或静默退出,尤其 VS Code ≥ 1.70 后更严格。
正确做法始终走 UI 流程:
- 打开 VS Code →
Ctrl+Shift+X→ 右上角⋯→Install from VSIX… - 或者按
Ctrl+Shift+P→ 输入Extensions: Install from VSIX…→ 选中文件 - 双击
.vsix或拖入窗口也无效——VS Code 自 1.70 起禁用了这些入口
装完还是英文?三个必须检查的位置
安装成功 ≠ 界面变中文。漏掉任一环节都会回退到英文。
-
locale.json文件必须存在且内容精确为{"locale":"zh-cn"}(小写、连字符、无空格、UTF-8 无 BOM)。路径:%APPDATA%\Code\User\locale.json(Windows)、~/.config/Code/User/locale.json(Linux)、$HOME/Library/Application Support/Code/User/locale.json(macOS) - VS Code 版本号和语言包
package.json中engines.vscode字段必须匹配主版本(如1.104.2对应^1.104.0) - 重启前必须杀干净所有后台进程:Windows 结束全部
Code.exe;macOS/Linux 运行pkill -f "Code Helper"和pkill -f Electron,否则旧进程会缓存英文状态
Developer: Show Running Extensions,确认 MS-CEINTL.vscode-language-pack-zh-hans 显示为 “Running” 状态——这是唯一能说明它真正在工作的信号。











