离线安装vscode插件必须加--allow-unverified参数并用绝对路径,因断网导致签名验证失败;拖拽安装需已加载工作区、窗口有焦点且拖入编辑区;带lsp服务的插件须在联网机触发下载后完整拷贝扩展目录。

code --install-extension 安装离线文档插件必须加 --allow-unverified
离线环境下 code --install-extension 默认会校验微软签名证书,而证书链验证需要联网访问 Microsoft 的 CRL 或 OCSP 服务。断网时直接运行命令会卡住或报 INVALID_SIGNATURE,不是文件损坏,是验签流程失败。
必须显式绕过:用绝对路径 + --allow-unverified 参数。例如:
code --install-extension "/mnt/iso/vscode-docs/ms-vscode.vscode-typescript-next-5.6.20241001.vsix" --allow-unverified
- Windows 下路径含空格或中文,务必用英文双引号包裹,反斜杠可但不推荐(易被转义)
- Linux/macOS 路径不能以
~开头,必须写成/home/user/... - 安装前确认 VSCode 进程已完全退出(任务管理器/活动监视器里无
Code进程)
拖拽 .vsix 到编辑区失败?先检查工作区和焦点状态
拖拽是最少依赖的 GUI 方式,但 VSCode 对上下文极其敏感:纯启动页、无工作区、窗口失焦、全屏、RDP 远程桌面,都会导致拖放事件被丢弃——不是 bug,是设计如此。
成功前提只有三个:
- VSCode 已打开且至少加载了一个空文件夹(File → Open Folder → 选任意空目录)
- VSCode 窗口在前台并有系统焦点(任务栏图标高亮)
- 拖入目标是中央编辑区(不是侧边栏、不是设置页、不是终端面板)
拖入后若右下角弹出 Extensions disabled by policy,说明企业组策略已禁用扩展,此时拖拽和 CLI 都无效,只能手动解压到 extensions 目录。
装上了但 hover 不显示文档?LSP 服务根本没下载
像 ms-vscode.vscode-typescript-next、ms-python.python 这类带语言支持的插件,.vsix 只是前端壳,真正的文档补全、跳转、hover 提示靠的是内置或外置的 LSP 服务(如 tsserver、pyright)。这些服务默认首次启用时联网下载。
离线环境它就卡在 “Initializing…” 或直接静默跳过。解决办法只有一个:
- 在同版本 VSCode 的联网机器上,打开一个
.ts或.py文件,等状态栏显示Ready或Typescript Server: Running - 然后完整拷贝整个扩展目录(含
node_modules和二进制可执行文件),例如:~/.vscode/extensions/ms-vscode.vscode-typescript-next-5.6.20241001/ - 粘贴到离线机对应路径,**彻底退出 VSCode 再重启**(否则缓存不刷新)
怎么确认下载的 .vsix 真的能用?看 package.json 三要素
很多镜像站或聚合页提供的 .vsix 是旧版、阉割版或平台错配版。真正可用的包必须满足:
-
package.json中engines.vscode字段与本地 VSCode 版本兼容(比如你用 1.93.0,插件要求"^1.90.0"就行,但"^1.95.0"就不行) -
publisher和name组合成的 ID(如ms-vscode.vscode-typescript-next)必须与市场页 URL 一致 - 文件名或
package.json中的os/cpu字段需匹配你的系统(darwin-arm64不能装到 Intel Mac 上)
快速验证方法:用 unzip -p your.vsix package.json | grep -E "(engines|publisher|name)" 查关键字段。别信“下载完成”就等于“能用”。











