离线安装的插件不会自动更新,因其依赖 marketplace.visualstudio.com 连通性检查版本哈希,断网时 extensions.autoCheckUpdates 静默跳过,根本未启动更新流程;拖入 .vsix 或执行 code --install-extension 本质是卸载旧版+安装新版,属重装而非增量更新,语言服务器等需离线预部署。

离线安装的插件不会自动更新,不是设置没开、也不是网络慢,而是 VSCode 根本不发起任何 Marketplace 请求——extensions.autoCheckUpdates 静默跳过,Extensions: Check for Updates 返回空,右下角从不弹气泡。
为什么拖 .vsix 进去不算“更新”而算“重装”
VSCode 没有“离线增量更新”机制。拖入新 .vsix 或执行 code --install-extension,本质是卸载旧版 + 安装新版,不保留旧配置(如用户级 settings.json 里的插件专属设置通常能保留,但扩展自身缓存、语言服务器状态全丢)。
- 拖拽只在已加载工作区的主编辑区生效;拖进侧边栏、设置页、空白启动页会静默失败
- 必须关闭所有 VSCode 实例(含托盘进程),否则
.vsix解压时写入$HOME/.vscode/extensions/被占用,安装卡住或部分文件缺失 - 安装后插件状态默认为“已禁用”,需手动点击启用,或重启 VSCode 后它才自动激活
code --install-extension 报 “not compatible with Code” 怎么快速修
这个错误 95% 是 engines.vscode 版本不匹配,和签名、路径、网络都无关。VSCode 启动时读取本地 code --version,安装时硬比对 .vsix 内 extension/package.json 的 "vscode": "^1.80.0" 字段。
- 运行
code --version,取前两位(如1.90.2→1.90) - 用
unzip -p your.vsix extension/package.json | grep vscode(Linux/macOS)或 7-Zip 打开查看该字段 - 若本地是
1.85而插件要求^1.90.0,必须换低版本.vsix;强行改package.json可能导致功能异常(尤其含 native 二进制的插件) - ARM Mac 上装了 x64 构建的插件(如带
pyright-server的 Python 插件),也会报同类错,但无提示——表现是图标亮着,F12 跳转失败
装完插件图标亮着,但补全/格式化/参数提示全失效
这不是插件没装好,是语言服务器(LSP)根本没跑起来。像 ms-python.python、Vue Language Features (Volar)、esbenp.prettier-vscode 这类插件,.vsix 只是外壳,真正干活的 pyright、volar-server、prettier CLI 是首次打开对应文件时才下载的。
- 离线机上永远等不到那个“Downloading…”结束——必须提前在有网机器上:打开一个
.py文件 → 等状态栏变绿/无提示 → 再完整拷贝整个扩展目录(如ms-python.python-2024.6.0/)到离线机的$HOME/.vscode/extensions/ - 不能只拷
.vsix,也不能只拷node_modules;native 二进制藏在out/server/或dist/下,漏一个就spawn ENOENT - 拷完必须彻底退出 VSCode(包括右下角托盘进程),否则 LSP 缓存不刷新,重启后还是“假启用”
- Ctrl+Shift+Space 没反应?先看右下角语言模式是否为
Python或TypeScript;是Plain Text就说明连语言绑定都没触发
最易被忽略的一点:插件更新后,codegeex.localMode 这类开关配置项不会自动继承,得手动在设置里开;而 Developer: Reload Window 不一定能刷新 LSP 连接,有时必须彻底关掉再重开。











