code --install-extension 报 invalid_signature 或卡在 installing… 是因 vs code 1.85+ 默认启用签名验证,离线时无法校验 embedded certificate 而静默拒绝;需确认 .vsix 来源官方、含 signature.sig 和 manifest.json,或加 --allow-unverified 参数绕过签名校验(不跳过版本校验)。

code --install-extension 报 INVALID_SIGNATURE 或卡在 Installing…
这不是文件被篡改,而是 VS Code 1.85+ 默认启用签名验证,离线时无法联网校验 embedded certificate,直接静默拒绝。它不报错,也不提示,只“假装没看见”。
- 先确认你用的是官网下载的
.vsix:发布者必须是MS-CEINTL(汉化包)或ms-python(Python 插件)等官方 ID,非 GitHub Release 或第三方打包站 - 运行
unzip -l plugin.vsix,检查根目录下是否存在signature.sig和manifest.json;缺任一文件 = 签名无效 - 临时绕过:用命令行加
--allow-unverified参数,例如/usr/bin/code --install-extension prettier.vsix --allow-unverified - 注意:
--allow-unverified不跳过版本校验,仅跳过签名;若版本不匹配仍会失败
拖拽 .vsix 后无反应或进度条不动
图形界面安装依赖后台网络请求调度和签名解压流程,断网时 VS Code 会挂起或丢弃操作,而不是报错。
- 确保 VS Code 窗口有焦点:任务栏图标高亮、不是灰显;远程桌面(RDP/TeamViewer)或虚拟机全屏状态下拖放常被拦截
- 不要从共享文件夹(如
/mnt/hgfs、Z:\)直接拖——先复制到本地路径,例如~/Downloads/或C:\temp\ - 路径含空格或中文?Windows 下必须用英文双引号包裹完整路径,例如
"C:\my ext\ms-python.python-2024.6.0.vsix" - 别双击
.vsix:VS Code 自 1.70 起已禁用该方式,不报错也不生效
装完还是英文?locale.json 配置错一个字符就白装
语言包装成功 ≠ 界面变中文。VS Code 必须同时满足三个条件:插件已启用 + locale.json 存在且格式正确 + 进程彻底重启。
-
locale.json内容必须严格为:{"locale": "zh-cn"}(小写、短横线、双引号,zh_CN、zh-hans、Chinese全部无效) - 路径必须是用户级配置目录:
Linux:~/.config/Code/User/locale.json
Windows:%APPDATA%\Code\User\locale.json
macOS:~/Library/Application Support/Code/User/locale.json - 改完后不能只重载窗口(Ctrl+Shift+P → Reload Window),必须完全退出 VS Code 进程(包括托盘图标),再重新启动
版本不匹配导致静默拒绝,连错误都不给
最隐蔽的问题:插件 package.json 中声明的 "engines": {"vscode": "^1.90.0"} 与你本地 code --version 输出(如 1.96.3)不满足语义化匹配规则,VS Code 直接跳过安装,毫无提示。
- 查本地版本:
code --version - 查插件要求:
unzip -p plugin.vsix extension/package.json | grep engines - 若本地版本低于插件要求的最小版本(如插件要
^1.91.0,你只有1.90.2),要么升级 VS Code,要么去 Marketplace 的/versionhistory页面手动下载旧版.vsix - 强行修改
package.json中的engines.vscode字段为精确版本(如"1.96.3"),再用zip重新打包为.vsix—— 注意不是重命名,是真正压缩并保持 ZIP 内部结构不变
locale.json 路径写错、权限不可读、或者 VS Code 启动时根本没扫描到那个文件。这些地方没有日志,也没有弹窗,只能靠逐项排除。











