直接改 extension/package.json 中的 "vscode" 字段是最有效解法,因 VSCode 启动时硬校验 engines.vscode 值,不匹配则静默禁用插件;双击安装 .vsix 会跳过修改直接失败,必须解包→改 extension/package.json→重打包→命令面板安装。

直接改 extension/package.json 里的 "vscode" 字段是最有效、最可控的解法,不是重装 VSCode,也不是等作者更新。
为什么双击安装 .vsix 会报 “not compatible with Code x.x.x”
VSCode 在加载插件前就硬校验 package.json 中的 "engines": { "vscode": "..." } 字段。只要当前版本不满足声明范围,就直接禁用——不运行、不报错(有时只灰显)、不触发任何生命周期钩子。
- 常见现象包括:插件右下角显示 Disabled、命令面板搜不到对应命令(如
prettier.format)、控制台出现红字Extension 'xxx' is not compatible with Code '1.118.0' - 这不是网络问题,也不是权限问题;
.vsix本质是 ZIP 包,双击或拖拽安装会跳过修改机会,直接失败 - 别点“重装”,Marketplace 仍推最新版;也别信 UI 显示的“已启用”,得看控制台和命令是否真可用
怎么手动改 .vsix 兼容当前 VSCode 版本
必须解包 → 修改 → 重打包 → 命令行安装。关键路径是 extension/package.json(不是根目录那个同名文件)。
- 用
7-Zip(Windows)、unzip(Linux/macOS)或 macOS 的Archive Utility解压xxx.vsix - 进入
extension/目录,打开package.json,找到"engines": { "vscode": "^1.103.0" }这一行 - 改成宽松范围,例如:
"vscode": ">=1.85.0"(推荐,覆盖宽)或"vscode": "^1.118.0"(若code --version输出是1.118.2) - 保存后,把整个
extension/文件夹重新打包为 ZIP(注意顶层必须是extension/目录),再把后缀名改为.vsix - 在 VSCode 中执行
Extensions: Install from VSIX,选这个改过的文件;不要拖拽、不要双击
已安装插件被禁用,怎么快速恢复
不用卸载重装,改本地 package.json 并重载窗口即可,5 秒内生效(但 VSCode 升级后该字段会被重置)。
- 定位插件目录:
~/.vscode/extensions/作者名.插件名-版本号/(macOS/Linux)或%USERPROFILE%\.vscode\extensions\作者名.插件名-版本号\(Windows) - 编辑该目录下的
package.json,只改"vscode"字段值,其他不动 - 关闭所有 VSCode 窗口,再启动,执行命令面板中的
Developer: Reload Window(仅点「启用」无效) - Remote-SSH 类插件要额外处理远端:
ssh进去删掉~/.vscode-server,再重连,否则卡在Starting VS Code Server
最容易被忽略的是:改完 engines.vscode 后没重启 VSCode,或者重打包时 ZIP 结构损坏(Windows 资源管理器双击解压再拖回保存会破坏结构),还有 Remote 插件远端 server 版本不一致——这三处一错,前面全白干。


















