直接拖拽新版本.vsix文件到VSCode主编辑区是最简单可靠的更新方式;需确保VSCode已启动、有焦点、已加载工作区,拖入未解压的.vsix文件后自动卸载旧版并安装新版,但含native依赖的插件仍需手动重启方可完整生效。

直接拖拽新版本 .vsix 文件进 VSCode 主窗口,是最简单、最可靠的更新方式;命令行 code --install-extension 也能用,但路径和环境稍不注意就会静默失败。
拖.vsix进主窗口就能覆盖安装
VSCode 已启动、有焦点、且打开了任意文件或文件夹时,把新版本 .vsix 文件(未解压)直接拖到编辑器中央白底区域,松手即弹出确认框。它会自动卸载旧版、解压安装新版,无需重启——但部分插件(如含 native 依赖的 ms-python.python)仍需手动重启才能加载完整功能。
- 拖的是解压后的文件夹?VSCode 完全无视,不报错也不提示
- 全屏模式或远程桌面中拖放可能被系统拦截,先退出全屏再试
- 安装后插件状态显示“禁用”,不是失败,是默认行为——点启用按钮或重启 VSCode 即可
- 右下角出现
Extensions disabled by policy?说明被组策略/企业策略锁死,GUI 和命令行都会被拦截
用 code --install-extension 必须满足三个硬条件
这个命令只在路径、环境、权限全部正确时才真正生效;否则要么报错,要么静默跳过,根本不会覆盖旧版。
- 必须用绝对路径:
/home/user/ext/prettier-9.10.3.vsix(Linux/macOS),Windows 要加引号:"C:\ext\prettier-9.10.3.vsix" -
code命令必须可用:若终端报command not found: code,在 VSCode 中按Ctrl+Shift+P输入Shell Command: Install 'code' command in PATH并执行 - 要强制覆盖已安装版本,必须加
--force参数:code --install-extension /path/to/new.vsix --force
更新后怎么确认真生效了
别信插件面板右下角显示的版本号——UI 经常滞后。关键看三处:
- 插件详情页右上角 ⋯ → “Extension Details”,往下拉看
Version字段是否已变 - 终端运行
code --list-extensions --show-versions,输出中必须出现esbenp.prettier-vscode@9.10.3这类精确匹配 - 进插件本地目录(如
~/.vscode/extensions/esbenp.prettier-vscode-9.10.3/package.json),检查"engines": {"vscode": "^1.80.0"}是否兼容你当前 VS Code 版本(Help → About查)
最容易被忽略的坑:文档资源和 LSP 二进制没跟着更新
装完 .vsix 只代表插件代码更新了,但像 CodeGeex 的离线模型、ms-python.python 的 pyright 语言服务器、vscode-drawio 的内核资源,都藏在插件目录深层子路径里,.vsix 不包含它们,也不会自动下载——这些必须提前在联网机上首次激活并完整拷贝整个扩展目录,否则补全不弹、SVG 插不了、参数提示空白,全是“看似更新成功,实则功能残缺”的假象。


















