先确认code命令是否注册:运行which code,无输出则说明未注册;临时用绝对路径安装,永久修复需在vscode中执行shell command: install 'code' command in path。

离线安装失败,90% 不是插件坏了,而是 VSCode 在静默校验、路径解析或版本匹配环节卡住了——它不报错,只“假装装上了”或者直接不动。
code --install-extension 报 command not found 怎么办
这不是网络问题,是 CLI 工具根本没注册进系统。VSCode 官方 .deb/.rpm 包和 macOS ZIP 版默认不自动配置 code 命令。
- 先运行
which code:无输出就说明命令不可见 - 临时解决:用绝对路径,如
/usr/bin/code --install-extension /path/to/xxx.vsix(Linux)或/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code --install-extension /path/to/xxx.vsix(macOS) - 永久修复:在 VSCode 里按
Ctrl+Shift+P→ 输入Shell Command: Install 'code' command in PATH→ 回车执行,再重启终端 - 别加
sudo:否则插件会装到 root 用户目录,普通用户启动 VSCode 后看不到
拖拽 .vsix 文件后卡在 “Installing…” 或完全没反应
图形界面安装依赖后台网络请求做签名验证和解压调度,断网时它不提示错误,只挂起或丢弃操作。
- 确认 VSCode 窗口有焦点:任务栏图标是否高亮?全屏或远程桌面(RDP/TeamViewer)下拖放常被拦截
- 检查文件是否真为
.vsix:用unzip -l plugin.vsix看顶层是否有extension/package.json;若显示一堆零散文件,说明已被解压或损坏 - 路径含中文或空格?Windows 下必须用英文双引号包裹,如
"C:\my ext\ms-python.python-2024.6.0.vsix" - 虚拟机共享文件夹(如
/mnt/hgfs)拖入常失败:先复制到本地路径(如~/Downloads/),再拖
报错 “Extension is corrupt” 或 “not compatible with the current version of VS Code”
这不是文件损坏,而是 VSCode 在加载阶段拒绝解析 package.json 或校验失败。最常被忽略的是版本声明不匹配。
- 运行
code --version,取前两位(如1.92.2→1.92) - 解压
.vsix:unzip -p plugin.vsix extension/package.json | grep engines,看"vscode": "^1.85.0"这类字段 - 本地版本必须 ≥ 插件要求的最低版本;差一个小版本(如
1.92vs^1.93.0)就会静默拒绝 - ARM 架构机器(如 M-series Mac)不能装 x64 构建的
.vsix:Help → About 里看架构,再去 Marketplace 的versionhistory页面手动选对应平台旧版下载 - 别手动改
package.json并重打包:绕过签名后插件可能被禁用,或关
装完插件列表里没有、命令面板也调不出指令
不是没装上,是 VSCode 没加载成功——常见于语言服务器未离线部署、扩展依赖缺失、或被静默禁用。
- 检查
~/.vscode/extensions/目录下是否真有对应文件夹;若存在但为空,说明解压失败 - 含 LSP 或 CLI 的插件(如
redhat.java、ms-python.python)必须先联网完整运行一次,才能把node_modules和二进制依赖带全;离线迁移需连同整个扩展目录一起复制 - 多扩展组合包(如
vscode-java-pack)本质是清单,不带代码,必须手动下载并按顺序安装所有子扩展:redhat.java→vscjava.vscode-java-debug→vscjava.vscode-java-test→redhat.vscode-yaml等 - 若插件已存在旧版本,用
--force强制覆盖:code --install-extension python-2024.2.0.vsix --force;但前提是 VSCode 已完全退出,且engines.vscode实际兼容
最容易被忽略的点是:VSCode 对 .vsix 的校验发生在解压前——哪怕文件完整、路径正确、权限足够,只要 package.json 里 engines.vscode 字段不满足语义化版本规则,它就直接跳过后续所有步骤,连日志都不留一行。











