如何离线安装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-vscode 。 CSHARP
这里发布者是ms-vscode
,扩展名是csharp
。
该版本可以在“ 更多信息”区域的右侧find。
要下载它,你需要从上面的模板创build一个链接:
所有软件包将具有相同的名称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安装
添加到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"