VSCode离线安装卡99%是因.extensions-tmp目录被锁死,需彻底退出VSCode后删除该临时目录(Windows:%USERPROFILE%.vscode.extensions-tmp;macOS/Linux:~/.vscode/.extensions-tmp),并清空缓存再启动。

VSCode离线安装时提示“文件被占用”或卡在99%?不是网络问题,是临时目录被锁死
VSCode离线安装 .vsix 时卡在 99%、进度条不动、右下角无报错,大概率不是插件坏了,而是它在写入 .extensions-tmp 目录时被系统或其它进程拦住了——这个临时目录用于解压和校验,一旦被杀软、残留进程或权限策略占着,VSCode 就静默挂起。
- Windows 路径:
%USERPROFILE%\.vscode\.extensions-tmp - macOS/Linux 路径:
~/.vscode/.extensions-tmp - 删之前必须确认 VSCode 已完全退出:Windows 查
Code.exe和Code Helper进程;macOS 用活动监视器搜Code;Linux 执行ps aux | grep code - 删完不能直接重启 VSCode,否则它可能复用损坏缓存继续卡住;必须清空后再启动
谁在偷偷锁着 .vsix 解压路径?查占用别只盯着 VSCode 自己
VSCode 报“无法保存”“安装失败”,本质是操作系统返回了 EBUSY 或 EACCES 错误。它只是转述,真正锁文件的是别的进程。别急着杀 VSCode,先定位元凶:
- Windows:打开资源监视器 → “CPU”页 → “关联的句柄”里搜
.vsix或你插件名(如python.vsix)→ 看“进程”列,常见有AntimalwareServiceExecutable.exe(WinDefender)、explorer.exe(尤其共享文件夹场景) - macOS/Linux:终端运行
lsof /full/path/to/your-extension.vsix;若提示 command not found,macOS 先brew install util-linux - 特别注意 WSL2 场景:若 .vsix 放在
/mnt/c/...下,AntimalwareServiceExecutable.exe+DrivFS+ Git LFS 可能三重叠加锁死文件
code --install-extension 报错 ENOENT 或卡住?CLI 没注册 + 路径含空格是高频原因
code --install-extension 命令没反应、报 command not found 或 ENOENT,90% 是 CLI 工具根本没注册进系统路径,而不是插件或网络的问题。
- 先运行
which code:无输出就说明命令不可见 - 临时解决:用绝对路径,如 macOS:
/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code --install-extension /path/to/xxx.vsix - 永久修复:VSCode 中按
Ctrl+Shift+P→ 输入Shell Command: Install 'code' command in PATH→ 回车执行 → 重启终端 - Windows 路径含空格或中文?必须用英文双引号包裹,如:
code --install-extension "C:\my ext\ms-python.python-2024.6.0.vsix" - 别加
sudo:否则插件会装到 root 用户目录,普通用户启动 VSCode 后看不到
手动解压 vsix 到 extensions 目录前,必须确认三件事
当图形界面和 CLI 都失效,可绕过签名验证直装,但这是应急手段,不是万能解药。动手前务必确认:
- VSCode 已完全退出(包括后台 helper 进程),否则写入
~/.vscode/extensions/会因文件被占用而失败 - 目标目录有写权限:
ls -la ~/.vscode/extensions/看是否提示Permission denied;若被锁,先chown -R $(whoami) ~/.vscode - 解压后文件夹命名必须规范:格式为
publishername.extensionname-version(如ms-python.python-2024.6.0),不能带空格、特殊字符,且必须与extension/package.json中的publisher和name字段一致


















