vscode插件市场不提供历史版本下载入口,因官方仅托管当前发布版本;获取旧版需用固定url直连 marketplace.visualstudio.com/_apis/...;本地已安装插件目录中的 extension.vsix 即为原始包,可直接备份。

VSCode 插件市场历史包(即已安装插件的旧版本)默认不保留,卸载后重装会直接拉取最新版,旧版 vsix 文件无法从 Marketplace 页面下载——这不是你操作失误,而是 VSCode 官方未提供历史版本归档入口。
为什么 Marketplace 不显示历史版本
VS Code 插件市场(marketplace.visualstudio.com)只托管每个插件的「当前发布版本」。即使作者曾发布 v1.2.0、v1.2.1、v1.3.0,只要 v1.3.1 被设为“发布”,前几个版本就从公开页面下架。后台仍存在,但无 UI 入口,也无 API 支持按版本号查询。
- 插件作者可手动在 GitHub Release 或私有 CDN 存档
.vsix,但非强制 - VSCode 客户端(
code --install-extension)默认只认最新版,不支持--version 1.2.0这类参数 - 部分插件页 URL 拼接
?version=1.2.0会 404,不是所有插件都启用版本路由
如何获取已知版本号的 .vsix 文件
唯一稳定路径是通过 Marketplace 的静态资源地址直连,前提是知道插件 ID 和目标版本号。格式固定:
https://marketplace.visualstudio.com/_apis/public/gallery/publishers/{publisher}/vsextensions/{extension-name}/{version}/vspackage
例如要下载 ms-python.python 的 2023.8.123456789 版本:
https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-python/vsextensions/python/2023.8.123456789/vspackage
- 必须替换
{publisher}(如ms-python)、{extension-name}(如python)、{version}(完整语义化版本,不能省略构建号) - 该链接返回的是原始
.vsix流,用浏览器或curl -L -o python-2023.8.123456789.vsix可直接保存 - 若返回 404,说明该版本未被平台存档(极少见),或版本号拼写错误(注意大小写、中划线)
怎么提前备份自己用的插件版本
别等丢了才找——本地已安装的插件目录里,就藏着当前生效的 .vsix 原始包。
- Windows:
%USERPROFILE%\.vscode\extensions\{publisher}.{extension-name}-x.x.x\extension.vsix - macOS:
$HOME/.vscode/extensions/{publisher}.{extension-name}-x.x.x/extension.vsix - Linux:
$HOME/.vscode/extensions/{publisher}.{extension-name}-x.x.x/extension.vsix
注意:extension.vsix 是插件安装时解压前的原始包,不是文件夹。只要没手动删过该目录,它就一直存在。建议定期运行脚本打包这些 .vsix 到单独备份目录,比如:
find ~/.vscode/extensions -name "extension.vsix" -exec cp {} ~/vscode-vsix-backup/ \;
这样下次重装系统或降级插件,不用再网上碰运气。
遇到 “插件总丢” 其实和历史包无关
很多人以为插件丢失 = 历史包没了,其实真正原因是用户数据路径迁移失败。VSCode 插件实际安装在 .vscode/extensions/ 目录下,而这个目录属于「用户数据路径」,不是程序安装路径。重装系统、换电脑、甚至改了 Windows 用户名,都会导致该路径失效——插件看似“消失”,其实是 VSCode 找不到原来的位置了。
- 正确做法:迁移前备份整个
.vscode/extensions目录,而非只记插件名 - 更省事:启用 Settings Sync(登录 GitHub),它同步的是插件 ID 列表,重装后自动拉取最新版——但依然解决不了「必须用旧版」的场景
- 关键区别:Settings Sync 解决的是「装什么」,而
.vsix备份解决的是「装哪个版本」
真正棘手的永远不是找不着下载入口,而是你根本没留意过那个 extension.vsix 文件就在眼皮底下躺着。











