download extension按钮消失是因微软后端动态控制,仅对未安装过该插件的账号+设备显示;治本方法是手拼官方url下载.vsix,格式为https://marketplace.visualstudio.com/_apis/public/gallery/publishers/{publisher}/vsextensions/{extension_name}/{version}/vspackage,需严格匹配publisher、extension_name(小数点后半段)和version。

为什么“Download Extension”按钮突然消失了
不是你浏览器坏了,也不是插件下架了——VSCode Marketplace 页面右上角的 Download Extension 按钮,只对未安装过该插件的账号+设备有效。一旦你或他人在当前登录态下点过“Install”,服务端就会隐藏这个按钮。常见于:重装系统后用同一微软账号登录、团队共享测试机、甚至只是卸载又重装过一次插件。
临时解法是开无痕窗口 + 登出账号再访问;但治本方法是绕过页面,直取下载链接。官方接口依然稳定可用,只是不暴露给前端。
拼URL下载指定版本.vsix最稳的方式
所有插件都走同一个后端接口,格式固定:https://marketplace.visualstudio.com/_apis/public/gallery/publishers/{publisher}/vsextensions/{extension_name}/{version}/vspackage。关键不是背公式,而是准确提取三段参数:
-
publisher:看插件详情页右上角 “Publisher” 后面的 ID,比如ms-python,不是Microsoft -
extension_name:必须是Unique Identifier小数点后的部分,比如ms-python.python→ 填python,填全会 404 -
version:进 “Version History” 标签页手动选,别抄页面顶部显示的“Latest”——那个可能是自动更新版,和你本地 VSCode 版本不兼容
示例:想装适配 VSCode 1.82.2 的 Python 插件旧版,查到历史版本 2023.14.0,拼出链接:https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-python/vsextensions/python/2023.14.0/vspackage,curl 或浏览器直接打开即可下载。
离线更新失败的三个硬性前提
很多人卡在“点了 Install 没反应”或“提示 extension already installed”,其实不是操作问题,而是没满足这三个条件:
- VSCode 必须完全关闭,包括托盘进程(Windows 下任务管理器里确认
Code.exe进程已结束) - .vsix 文件路径不能含中文、空格、括号等字符,建议放
/tmp/或C:\vsix\这类干净路径 - 新旧插件版本必须满足
engines.vscode兼容性,比如新版插件声明"^1.90.0",而你本地是1.82.2,安装会静默失败,日志里只写Extension 'xxx' is not compatible with Code '1.82.2'
验证兼容性最快方式:解压 .vsix(它本质是 zip),打开 extension/package.json,检查 engines.vscode 字段。
GitHub Releases 是更可靠的备用源
当 Marketplace 接口返回 404 或版本缺失时,开源插件(如 tinymist、rust-analyzer)通常会在 GitHub Release 页面提供预编译的 .vsix。这不是“第三方镜像”,而是作者亲手发布的原始包。
注意两点:
- 核对
sha256sum:下载后务必和 Release 页面提供的校验值比对,防止中间劫持 - 认准文件名后缀:比如
tinymist-win32-x64.vsix和tinymist-linux-x64.vsix不通用,选错平台会提示Unsupported platform
真正容易被忽略的是:有些插件的 GitHub Release 只打包核心功能,而 Marketplace 版本额外集成了 telemetry 或语言包。离线部署前,得先确认业务是否依赖这些附加模块。











