直接修改插件.vsix中extension/package.json的"engines.vscode"字段为宽松范围(如">=1.75.0")是最快速、最可控的解法,而非重装VSCode或盲目禁用;需解包、修改、重打包后通过命令面板安装,且必须完全退出VSCode再重启。

直接改插件的 engines.vscode 字段是最快速、最可控的解法,而不是重装 VSCode 或盲目禁用插件。
插件报 “not compatible with Code x.x.x” 怎么办
这不是网络或权限问题,是 VSCode 启动时硬校验插件 package.json 里的 engines.vscode 值不满足当前版本。常见现象包括:插件灰显、右键菜单消失、命令不可用(如 prettier.format not found)、控制台报红字 Extension 'xxx' is not compatible with Code '1.102.3'。
- 先确认是否被自动禁用:Ctrl+Shift+P →
Extensions: Show Installed Extensions→ 筛选Disabled,看目标插件是否在列 - 别点“重装”,新版 Marketplace 仍会推最新版;优先点插件右下角 ⋯ →
Install Another Version…,选和code --version完全匹配的旧版(如本地是1.79.2,就选带 ✅ 的1.79.2) - 若该菜单灰显,说明作者没发布对应版本,必须走离线路径
离线安装 .vsix 并修改 engines 字段
.vsix 本质是 ZIP 包,双击安装会失败,必须解包→改配置→重打包。关键路径是 extension/package.json(不是根目录那个),且改完必须用命令面板安装,不能拖拽。
- 用
unzip(Linux/macOS)或 7-Zip(Windows)解压 .vsix 文件 - 进入
extension/目录,编辑package.json,找到"engines": { "vscode": "^1.103.0" }这一行 - 改成宽松范围,例如
"vscode": ">=1.75.0"(推荐)或"vscode": "^1.79.0"(若本地是1.79.2);避免写死"=1.79.2",否则 minor 更新后又失效 - 保存后,把整个
extension/及其内容重新打包为 ZIP,再将后缀名改为.vsix - Ctrl+Shift+P →
Extensions: Install from VSIX,选这个文件
Remote-SSH / WSL 连接卡在 Starting VS Code Server
这不是插件问题,而是远端 vscode-server 二进制版本和本地 VSCode 主版本不一致。VSCode Remote 扩展会在远端自动拉取 server,但只认严格匹配的 commit hash。
- 先运行
code --version确认本地主版本(如1.102.3) - 登录远端机器,删掉
~/.vscode-server目录(rm -rf ~/.vscode-server) - 断开连接后重连,VSCode 会重新下载匹配的 server
- 若仍失败,检查远端
~/.vscode-server/bin/下的 hash 是否与本地code --version输出末尾一致;不一致就手动删并重试 - 注意:内网或代理环境可能缓存旧 server,可加
--force参数重连(code --force不适用,需在 SSH 配置中设remote.SSH.enableDynamicForwarding为false再试)
中文包装了但界面仍是英文
语言包只是资源提供方,VSCode 是否启用它,完全取决于 locale.json 文件的内容和加载顺序。即使插件启用、版本对得上,只要这个文件不存在、值错误或被覆盖,界面就一定是英文。
- 路径必须准确:
Windows:%APPDATA%\Code\User\locale.json
macOS:~/Library/Application Support/Code/User/locale.json
Linux:~/.config/Code/User/locale.json - 内容只能是
{"locale": "zh-hans"}(不是zh-CN,也不是zh) - 如果文件不存在,手动创建;如果存在但值是
"en",直接改掉并保存 - 改完必须完全退出 VSCode(包括托盘进程),再重启;仅
Developer: Reload Window不生效 - 仍无效?删掉
~/.config/Code/Cache(Linux/macOS)或%APPDATA%\Code\Cache(Windows),这是纯缓存,删了不影响设置
最易被忽略的是 Remote-SSH 和语言包的双重校验机制:前者要求远端 server 与本地主版本严格一致,后者依赖一个极小却关键的 JSON 文件。改 engines 或删 Cache 这类操作看似琐碎,但跳过任意一步,问题就会原样复现。


















