VSCode批量离线安装插件必须为每个.vsix文件单独调用code --install-extension命令,路径含空格或中文需加英文双引号,且须用绝对路径;离线时还需加--allow-unverified绕过签名验证,并提前在有网环境触发LSP加载后完整拷贝扩展目录。

code --install-extension 必须每个插件单独写一次
VSCode 命令行不支持 code --install-extension a.vsix b.vsix 这种写法,合并参数会静默忽略后续插件。批量安装的本质是重复调用命令,不是“一次命令装多个”。
- Windows PowerShell 正确写法:
Get-ChildItem *.vsix | ForEach-Object { code --install-extension $_.FullName --force } - Linux/macOS bash 正确写法:
for ext in *.vsix; do code --install-extension "$ext" --force; done - 路径含空格或中文?必须加英文双引号包裹,否则
code会截断路径,不报错也不装 - 别用相对路径——
./prettier.vsix在某些终端或脚本上下文中会失败;一律用绝对路径,如/opt/vsix/prettier-9.10.3.vsix
离线环境必须加 --allow-unverified,否则卡在 INVALID_SIGNATURE
企业内网或定制镜像常禁用证书链校验,而 VSCode 默认严格验证 .vsix 签名。即使文件是从 marketplace.visualstudio.com 下载的官方包,也会因无法连接微软签名服务器而失败。
- 错误现象:
code --install-extension xxx.vsix执行后无输出,code --list-extensions查不到,日志里也无提示 - 必须显式加
--allow-unverified参数:code --install-extension "/mnt/共享/Python-2024.12.1.vsix" --force --allow-unverified - 该参数仅绕过签名检查,不影响插件功能;生产环境若允许,比
--disable-extension-corruption-check更安全
LSP 类插件(如 Python、Vue)只装 .vsix 是白装
装上 ms-python.python-2024.12.1.vsix 后打开 .py 文件,状态栏显示 “Downloading pyright-server…” 卡住?这不是安装失败,是语言服务器根本没落地——.vsix 只是前端壳,LSP 二进制默认首次启用时联网下载。
- 正确做法:在有网机器上,用相同 VSCode 版本打开一个 .py 文件 → 等状态栏显示 “Python Language Server: Running” → 关闭 VSCode
- 然后拷整个扩展目录:
Windows:%USERPROFILE%\AppData\Roaming\Code\Extensions\ms-python.python-2024.12.1\
Linux/macOS:~/.vscode/extensions/ms-python.python-2024.12.1/ - 依赖插件不能漏:解压 .vsix,运行
unzip -p your-plugin.vsix extension/package.json | grep extensionDependencies查明要一起装的插件,比如ms-python.python依赖ms-toolsai.jupyter
执行前必须杀干净所有 Code.exe / Code Helper 进程
VSCode 后台进程(尤其系统托盘里的 Code Helper)会锁住扩展目录。若边装边开着编辑器,新插件可能写入一半就被中断,导致 code --list-extensions 能看到 ID,但启用时报错或功能缺失。
- Windows:任务管理器 → 结束所有
Code.exe和Code Helper.exe进程 - macOS:活动监视器里搜索
Code,强制退出全部相关进程 - Linux:运行
pkill -f "code.*--no-sandbox"或更稳妥的killall -u $USER code - 装完再启动 VSCode,不要提前开窗口


















