拖拽.vsix没反应,须同时满足三条件:vscode已加载工作区、窗口有系统焦点、拖入的是原始未解压的.vsix文件;缺一即静默忽略。

拖拽.vsix到主编辑区没反应?先确认这三件事
VSCode 对拖放安装极其敏感,不是“拖进去就装”,而是只在三个条件同时满足时才响应:VSCode 必须已启动并加载了任意工作区(哪怕只是空文件夹)、窗口有系统焦点(任务栏图标高亮)、拖入的是原始未解压的 .vsix 文件。缺一不可。
- 没加载工作区?纯启动页或远程 SSH 未连接完成时,拖放事件被直接忽略
- 窗口没焦点?点击编辑器空白处再试;全屏、RDP、TeamViewer 环境会拦截拖放
- 拖错了文件?
prettier.vsix.zip或解压后的文件夹都不行;用unzip -l your-extension.vsix验证顶层是否为extension/目录
拖进去了但插件没启用?别跳过手动点「启用」
拖拽安装成功后,插件默认处于禁用状态——这是 VSCode 的安全设计,不是 bug。你不会看到任何提示,列表里显示“已安装”,但功能完全不生效。
- 必须手动打开 Extensions 面板,找到刚装的插件,点右侧「启用」按钮
- 或者彻底退出 VSCode(包括右下角托盘进程),再重新打开,它会自动启用
- 特别注意:语言类插件如
ms-python.python启用后首次打开.py文件,还会尝试下载 LSP 服务;离线时卡在 “Downloading…” 就是这个原因,不是安装失败
右下角弹出“Extensions disabled by policy”?拖拽和 CLI 都失效
这不是你操作错了,而是企业组策略已全局禁用扩展安装。此时 VSCode 不会报错,也不会弹确认框,所有安装路径(拖拽、code --install-extension)都会静默失败。
- 唯一可行方案是手动解压
.vsix并复制到extensions目录 - 解压后顶层目录名必须严格为
扩展ID-版本号格式(如ms-python.python-2024.6.0),不能改名 - 整个文件夹(含
package.json、node_modules、out/等)移入:
Windows:%USERPROFILE%\.vscode\extensions\
macOS/Linux:$HOME/.vscode/extensions/ - 复制完必须彻底退出 VSCode(右键托盘图标 → Exit),否则缓存不刷新,新插件不会加载
装上了却没语法高亮/跳转?大概率缺 LSP 二进制
像 ms-python.python、volarjs.volar、esbenp.prettier-vscode 这类插件,.vsix 只是前端壳,真正干活的 pyright、volar-server、prettier CLI 是首次启用时联网下载的。离线环境里,它不会报错,只会静默跳过或卡住。
- 正确做法:在有网机器上,用同一版本 VSCode 安装该插件 → 打开对应文件(如
.py)→ 等状态栏显示 “Ready” → 不卸载,直接把整个ms-python.python-2024.6.0/目录拷到离线机对应extensions路径下 - 不能只拷
.vsix文件,也不能只拷node_modules子目录——必须是完整解压后的带package.json和 native 二进制的文件夹 - ARM Mac 上若装了 x64 构建的插件(比如没注意
darwin-x64和darwin-arm64区别),VSCode 不会报错,但 LSP 服务根本起不来,现象一模一样











