如何离线安装VSCode扩展?

我已经在一台没有,也不能连接到互联网的机器上安装VS Code。 根据文档 ,如果我有.vsix ,我可以从命令行安装扩展,但我不知道如何从市场上获得.vsix

如何下载市场上托pipe的扩展程序的.vsix

根据文档 ,可以直接下载扩展名:

扩展程序的直接下载URL格式如下:

 https://${publisher}.gallery.vsassets.io/_apis/public/gallery/publisher/${publisher}/extension/${extension name}/${version}/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage 

这意味着为了下载你需要知道的扩展名

  • 发行商名称
  • 版本
  • 扩展名

您可以在url中find所有这些信息。


下面是一个下载安装C# v1.3.0扩展的例子:

发行商,扩展和版本

您可以在其url的扩展主页上find发布者和扩展名:

https://marketplace.visualstudio.com/items?itemName=ms-vscodeCSHARP

这里发布者是ms-vscode ,扩展名是csharp

该版本可以在“ 更多信息”区域的右侧find。

要下载它,你需要从上面的模板创build一个链接:

https://ms-vscode.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vscode/extension/csharp/1.3.0/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage

所有软件包将具有相同的名称Microsoft.VisualStudio.Services.VSIXPackage,所以你需要下载后重命名它,如果你想知道什么包是以后。

安装

为了安装扩展

  • 重命名该文件并为其指定*.vsix扩展名
  • 打开VS Code ,进入File > Open File...Ctrl+O然后select.vsix文件
  • 如果一切顺利,您应该在窗口顶部看到这条消息:

扩展已成功安装。 重新启动以启用它。


更新2016-11-15

从VSCode 1.7.1开始,拖动或打开扩展function不再起作用。 为了手动安装,你需要:

  • 打开扩展边栏
  • 点击右上angular的省略号
  • select从VSIX安装

从VSIX安装...

添加到t3chb0t的答案,不知道为什么下载的选项是不可见的,所以创build了一个补丁,使用GreaseMonkey / TamperMonkey的人:你可以在这里findgist代码

或者,您可以将下面的行粘贴到浏览器控制台中,链接会奇迹般地出现:

 let version = document.querySelector('.ux-table-metadata > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(2) > div:nth-child(1)').innerText , itemDetails = window.location.search.replace('?', '').split('&').filter(str => !str.indexOf('itemName')).map(str => str.split('=')[1])[0] , [author, extension] = itemDetails.split('.') , lAuthor = author.toLowerCase() , href = `https://${lAuthor}.gallery.vsassets.io:443/_apis/public/gallery/publisher/${author}/extension/${extension}/${version}/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage` , element = document.createElement('a'); element.href = href; element.className = 'vscode-moreinformation dark'; element.innerHTML = 'download .vsix file'; element.download = `${extension}.${version}.vsix`; document.querySelector('.vscode-install-info-container').appendChild(element); 

所有这些build议是伟大的,但有点痛苦跟随,因为执行代码来构buildURL或手动构build这个疯狂的URL是一种讨厌…

所以,我扔了一个快速的Web应用程序,使事情变得更容易。 只需粘贴你想要的扩展名的URL,就可以正确地下载你的扩展名:publisher-extension-version.vsix。

希望有人发现它有帮助: http : //vscode-offline.herokuapp.com/

从今天起, 最新版本的扩展的下载URL被逐字地embedded在市场上的页面的源代码中,例如来源URL:

https://marketplace.visualstudio.com/items?itemName=lukasz-wronski.ftp-sync

包含string:

https://lukasz-wronski.gallerycdn.vsassets.io/extensions/lukasz-wronski/ftp-sync/0.3.3/1492669004156/Microsoft.VisualStudio.Services.VSIXPackage

我使用下面的Python正则expression式来提取dl URL:

 urlre = re.search(r'source.+(http.+Microsoft\.VisualStudio\.Services\.VSIXPackage)', content) if urlre: return urlre.group(1) 

我想扔在PowerShell的下载选项,以防其他人遇到这种情况。 我有几个离线场景,我运行这个循环下载和更新我使用的所有扩展离线。

 $page = Invoke-WebRequest -Uri 'https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell' $details = ( $page.Scripts | ? {$_.class -eq 'vss-extension'}).innerHTML | Convertfrom-Json $extensionName = $details.extensionName $publisher = $details.publisher.publisherName $version = $details.versions.version Invoke-WebRequest -uri "$($details.versions.fallbackAssetUri)/Microsoft.VisualStudio.Services.VSIXPackage" ` -OutFile "C:\Scripts\extensions\$publisher.$extensionName.$version.VSIX"