Skip to content

手动下载VS Code扩展的VSIX文件

问题背景

Visual Studio Code扩展通常通过官方市场在线安装,但在离线环境中部署时,需要手动下载.vsix安装包。自2025年初起,VS Code市场(marketplace.visualstudio.com)不再在网页上直接提供.vsix下载按钮,导致用户在离线安装时遇到困难。

典型场景

  1. 需要在未联网的设备(如安全隔离环境)中安装扩展
  2. 需要安装特定历史版本而非最新版扩展
  3. 企业环境需批量部署相同开发环境

多种解决方案

✅ 方法1:通过VS Code客户端下载(官方推荐)

  1. 在联网计算机打开VS Code ≥ v1.96版本
  2. 打开扩展视图(Ctrl+Shift+X)
  3. 找到扩展后点击右侧...图标
  4. 选择Download Extension下载VSIX文件
bash
# 验证VS Code版本命令
code --version
# 至少显示1.96.x以上版本

TIP

此方法需最新VS Code支持,旧版本无该选项。建议定期更新VS Code以确保功能完整性

✅ 方法2:手动构造下载链接

通过分析URL格式直接生成下载链接:

  1. 获取扩展的唯一标识符(如 ms-python.python
  2. 在市场页面"Version History"标签页查找具体版本号
  3. 根据目标平台选择对应参数:
平台类型targetPlatform参数
Windows x64win32-x64
macOS Inteldarwin-x64
Linux ARM64linux-arm64
全平台通用无需参数
python
unique_identifier = 'ms-python.python'
version = '2024.17.2024100401'  
target_platform = 'win32-x64'

publisher, package = unique_identifier.split('.')
url = (
    f'https://marketplace.visualstudio.com/_apis/public/gallery/publishers/{publisher}/vsextensions/{package}/{version}/vspackage'
    + (f'?targetPlatform={target_platform}' if target_platform else '')
)
print(f"下载链接: {url}")

将生成的URL粘贴到浏览器即可下载

✅ 方法3:浏览器脚本自动生成链接

安装Tampermonkey后,添加此脚本自动添加下载项:

js
// ==UserScript==
// @name         VS Marketplace VSIX下载器
// @match        https://marketplace.visualstudio.com/items*
// ==/UserScript==

function addLinks() {
  const versionRows = document.querySelectorAll('.version-history-container-row');
  
  const platformMap = {
    "Linux x86_64": "linux-x64",
    "Win32": "win32-x64" // 根据系统修改映射
  };
  
  const platform = platformMap[navigator.platform] || 'universal';
  const itemName = new URL(location.href).searchParams.get('itemName');
  const [publisher, package] = itemName.split('.');

  versionRows.forEach(row => {
    const versionCell = row.querySelector('.version-history-container-column');
    const version = versionCell.textContent;
    
    const link = document.createElement('a');
    link.href = `https://marketplace.visualstudio.com/_apis/public/gallery/publishers/${publisher}/vsextensions/${package}/${version}/vspackage?targetPlatform=${platform}`;
    link.textContent = '下载VSIX';
    link.style.marginLeft = '10px';
    
    versionCell.appendChild(link);
  });
}

setTimeout(addLinks, 1000);

✅ 方法4:使用Chrome扩展辅助

安装**VSIX Downloader**扩展,安装后在市场页面会自动显示下载按钮

✅ 方法5:书签脚本快速下载

  1. 浏览器书签栏右键 → "添加新书签"
  2. 在网址处粘贴以下代码:
javascript:(function(){const urlPattern='https://marketplace.visualstudio.com/_apis/public/gallery/publishers/${publisher}/vsextensions/${extension}/${version}/vspackage';let itemName=new URL(location.href).searchParams.get('itemName');let[publisher,package]=itemName.split('.');let version=document.querySelector('.version-history-container-column').innerText;let url=urlPattern.replace('${publisher}',publisher).replace('${package}',package).replace('${version}',version);let dlLink=document.createElement('a');dlLink.href=url;dlLink.download='';document.body.appendChild(dlLink);dlLink.click();})()
  1. 访问任何扩展页面 → 点击该书签 → 自动下载最新版VSIX

✅ 方法6:从源码构建VSIX

bash
# 安装必要工具
npm install -g @vscode/vsce

# 克隆扩展仓库
git clone https://github.com/microsoft/vscode-python.git
cd vscode-python

# 切换到指定版本
git checkout tags/2024.17.2024100401

# 打包VSIX
vsce package
# 将在当前目录生成.PYTHON-2024.17.2024100401.vsix

注意事项

  1. 部分扩展依赖私有构建工具链
  2. 需预装Node.js ≥ v16.x
  3. 企业扩展源码可能不公开

🟢 替代方案:使用Open VSX市场

开源社区维护的Open VSX`:

  1. 访问open-vsx.org
  2. 搜索扩展
  3. 在版本下拉框选择特定版本
  4. 直接下载VSIX文件

优势

  • 可下载历史版本
  • 无需账户登录
  • 支持批量下载(需配合API)

最佳实践建议

  1. 优先使用方法1或方法2 - 最接近官方渠道
  2. 需要下载历史版本 → 使用Open VSX或构造链接
  3. 批量下载场景 → 编写脚本自动化构造链接
  4. 企业内网部署 → 自建VS Code扩展画廊

安全提示

从非官方渠道获取的VSIX文件需进行安全扫描:

bash
# 使用CLI工具验证扩展签名
code --verify PATH_TO_EXTENSION.vsix

解决方案对比表

方法获取旧版本无需安装操作复杂度适用场景
VS Code内置下载个人常规使用
URL构造✔️✔️⭐⭐技术人员批量下载
浏览器脚本✔️⚠️需Tampermonkey⭐⭐⭐高频下载用户
Open VSX✔️✔️所有用户首选替代