最可靠方式是拖入已加载工作区的vscode主窗口;若无反应,需检查vscode是否获焦点、是否全屏/远程、是否拖入原始未解压.vsix文件。

离线安装 VSCode 插件,最可靠的方式不是点选菜单,而是把 .vsix 文件直接拖进已加载工作区的编辑器主窗口——它不依赖网络、不校验签名、不走 Marketplace,只要文件完整、版本匹配,松手就弹确认框。
拖进主窗口没反应?先检查这三件事
这是内网环境最高频的“装不上”错觉,实际是触发条件未满足:
- VSCode 没获得系统焦点:点击编辑器任意空白处再试,任务栏图标未高亮 = 无焦点
- 当前处于全屏模式或远程桌面(如 RDP/TeamViewer):这类环境常拦截拖放事件,退出全屏或改用命令行
- 拖的是解压后的文件夹或重命名过的
.zip:VSCode 只识别原始未解压的.vsix,用unzip -l xxx.vsix应能看到顶层是extension/目录
code --install-extension 命令总报错 Extension is not compatible
这个错误几乎全是版本不兼容导致的,和网络无关。VSCode 安装时会严格比对 package.json 中的 "engines": {"vscode": "^1.80.0"} 和本地版本(code --version 输出的第一段,如 1.85.2 → 取 1.85)。
- 用
unzip -p xxx.vsix extension/package.json | grep engines(Linux/macOS)或 7-Zip 打开查看engines.vscode字段 - ARM Mac 上装了 x64 构建的插件(尤其含 native 二进制的,如
pyright、esbuild),也会触发同类报错,需找带darwin-arm64标识的版本 - 路径必须是绝对路径,Windows 推荐用正斜杠:
code --install-extension C:/ext/ms-python.python-2024.6.0.vsix - 路径含空格或中文?加英文双引号:
code --install-extension "C:/my ext/vscode-eslint.vsix"
插件列表显示“已安装”,但 Python 补全/格式化不生效
这是离线环境最典型的假成功现象——安装通过了,但语言服务器或 CLI 工具没拉下来。
- 像
ms-python.python、esbenp.prettier-vscode这类插件,首次打开.py或.js文件时,会自动下载pyright、prettier等二进制工具,默认走外网,离线会卡在状态栏 “Downloading…” 或输出面板报Failed to fetch - 解决办法不是重装
.vsix,而是在有网机器上完整跑一遍:打开对应文件类型 → 等状态栏变绿 → 再把整个扩展目录(如~/.vscode/extensions/ms-python.python-2024.6.0)拷到内网机对应路径 - 别只拷
.vsix文件,要拷解压后的完整文件夹;否则 native 二进制缺失,spawn ENOENT错误必现 - 验证是否真装好:打开命令面板(
Ctrl+Shift+P),输入插件命令(如Python: Select Interpreter),看能否调出;再查输出面板(View → Output)里对应通道有没有报错
真正容易被忽略的是:插件安装后默认禁用,尤其当它声明了 "workspace" 或 "terminal" 权限时,首次启用还会弹窗提示;另外,某些插件(如语言服务器类)必须重启工作区而非整个 VSCode 才能激活——这些细节不处理,就会一直卡在“看起来装了,但啥也不干”的状态。











