先打开developer: open extension logs查看extension management和extension host日志,再检查exthost.log中vscode版本兼容性及main.log中的enoent/eacces权限错误,最后确认最新日期日志文件夹路径。

打开 Extension Logs 看真实安装路径和失败点
VSCode 不会在界面上告诉你 Install from VSIX 到底卡在哪一步,所有细节都藏在 Extension Host 日志里。直接看日志比反复重装快得多。
按 Ctrl+Shift+P → 输入并选择 Developer: Open Extension Logs,打开后重点盯两个文件:
-
Extension Management:记录下载、解压、注册动作,搜install或failed能看到是否进了解压流程 -
Extension Host:插件真正加载时的日志,搜activate或扩展 ID(如ms-python.python),看有没有Error堆栈
如果 Extension Management 里完全没出现你刚选的 .vsix 文件名,说明 VSCode 根本没开始处理它——大概率是 UI 没响应或被拦截了,不是插件本身问题。
检查 exthost.log 里是否报 vsixmanifest 版本不兼容
离线安装失败最常被忽略的原因,是 .vsix 包里 extension.vsixmanifest 或 package.json 中声明的 vscode 兼容版本与你本地 code --version 不匹配。VSCode 会静默跳过,连错误提示都不给。
打开 exthost.log(路径见下文),搜索关键词:engines、vscode、incompatible。常见现象:
- 日志里出现
Extension 'xxx' is not compatible with Code '1.91.0' - 或只有
Skipping extension xxx: no matching engine这类低优先级日志,容易被忽略 - 确认方法:用
7-Zip解压.vsix,打开根目录下package.json,检查"engines": {"vscode": "^1.85.0"}是否覆盖你当前版本(如1.91.0)
注意:Windows 资源管理器双击解压再拖回去重打包,会破坏 ZIP 结构,导致后续安装直接静默失败。
定位权限或写入失败:看 main.log 里的 ENOENT / EACCES
即使 .vsix 合法、版本对得上,安装仍可能因磁盘权限失败。这类错误不会出现在 Extension Logs,而是在 main.log 里。
执行 Developer: Open Logs Folder,打开最新日期文件夹下的 main.log,搜索:
-
ENOENT:表示 VSCode 尝试写入~/.vscode/extensions/下某个路径时,父目录不存在(比如extensions文件夹被删了或权限锁死) -
EACCES:典型权限拒绝,尤其在云桌面、WSL 或公司策略严格的 Windows 上常见 -
Failed to write file或Could not create symlink:说明目标目录不可写,或被杀毒软件/组策略拦截
验证方式:手动在终端运行 mkdir -p ~/.vscode/extensions/test,看是否报错。如果失败,问题就出在环境层,不是 VSCode 或插件的问题。
离线环境必须确认的三个日志位置
没有网络时,VSCode 不会生成远程请求日志,但本地行为全靠这三处落盘。别只盯着一个地方翻:
- Windows:
%APPDATA%\Code\logs\<date>\exthost\exthost.log</date>和main.log - macOS:
~/Library/Application Support/Code/logs/<date>/exthost/exthost.log</date> - Linux:
~/.config/Code/logs/<date>/exthost/exthost.log</date>
每个 <date></date> 文件夹对应一次 VSCode 启动周期。安装失败后,一定要查**最新创建的那个日期文件夹**,旧日志毫无参考价值。很多人翻了半天发现全是历史记录,白白浪费时间。











