拖拽.vsix到主编辑区是最稳的离线安装方式;需VSCode已启动、有系统焦点、加载工作区,且文件为原始未解压.vsix,版本兼容,安装后须手动启用或重启。

拖拽 .vsix 到编辑区是最稳的安装方式
只要 VSCode 已启动、有系统焦点、加载了任意工作区(哪怕只是空文件夹),把未解压的 .vsix 文件直接拖进主编辑区域(不是侧边栏、不是设置页),松手就会弹出安装确认框。它不走网络、不校验证书、不依赖 code CLI 是否可用,是离线环境下成功率最高的路径。
常见失败原因全是“没反应”,其实就三件事没对齐:
- VSCode 窗口没获得系统焦点(任务栏图标未高亮)
- 拖的是解压后的文件夹,或重命名成
.zip的文件(.vsix必须保持原始压缩包形态) - 插件要求的
"engines": {"vscode": "^1.85.0"},而你用的是1.82.3—— 版本不兼容时 VSCode 会静默忽略拖放事件
code --install-extension 命令必须用绝对路径
该命令适合批量部署或写脚本,但它对路径极其敏感,相对路径几乎必败。Windows 下推荐统一用正斜杠,避免反斜杠转义问题;Linux/macOS 必须用绝对路径。
关键要点:
- 路径含空格或中文?必须加英文双引号:
code --install-extension "C:/my ext/python-2026.6.123456.vsix" - 提示
command not found: code?不是 PATH 问题,是 VSCode 没启用 Shell 命令:按Ctrl+Shift+P输入Shell Command: Install 'code' command in PATH并执行 - 报
INVALID_SIGNATURE?离线无法校验签名链,必须加--allow-unverified参数:code --install-extension python.vsix --allow-unverified
手动解压复制到 extensions 目录是底层应急方案
当 GUI 和 CLI 都被策略封锁,或需要部署带 native 二进制的插件(如 pyright、esbuild)时,只能拆包直装。但这不是简单复制粘贴,而是严格还原目录结构。
操作步骤:
- 先用
unzip -l python.vsix查顶层目录名,例如ms-python.python-2024.6.0/—— 这就是扩展 ID + 版本号,必须原样作为子目录名 - 解压后整个文件夹(含
package.json、node_modules等)移入对应extensions路径:
Windows:%USERPROFILE%\AppData\Roaming\Code\Extensions\
macOS/Linux:$HOME/.vscode/extensions/ - 不能只放
.vsix文件进去,也不能丢掉外层目录直接拷内容;复制完需完全退出 VSCode(包括右下角托盘进程),再重新打开
语言类插件首次启用会卡在 LSP 下载
很多插件(如 ms-python.python、volarjs.volar、esbenp.prettier-vscode)只装 .vsix 是注册前端,首次启用才下载 LSP 服务(pyright-server、volar-server、prettierCLI)。离线环境会卡在 “Downloading…”。
正确做法:
- 在有网机器上完整触发一次:打开一个
.py或.vue文件,等状态栏显示 “Ready” 后,把整个~/.vscode/extensions/ms-python.python-2024.6.0/目录(含子目录里的 native 二进制)拷到内网机对应路径下 - ARM Mac 上装 x64 插件不会报错,但 native 部分静默失效 —— 解压后看
package.json里的engines.vscode和os/cpu字段,匹配目标平台
最易被忽略的一点:插件安装后默认禁用,尤其当声明了 "workspace" 或 "terminal" 权限时,首次启用仍会弹窗提示。别只看扩展面板里有没有名字,要点开「启用」按钮或重启 VSCode 才算真正落地。











