Как установить расширения VSCode в автономном режиме?



Я установил VS-код на машине, которая не подключена и не может быть подключена к интернету. согласно документам, Я могу установить расширения из командной строки, Если у меня есть .vsix, но я не знаю, как получить .vsix на рынке.



как я могу скачать .vsix для расширения, размещенного на рынке?

3465   7  

7 ответов:

обновление 2017-12-13

теперь вы можете скачать расширение напрямую из рынок.

enter image description here

по состоянию на VSCode 1.7.1 перетаскивания открытие или расширение больше не работает. Для того, чтобы установить его вручную вам нужно:

  • откройте боковую панель расширений
  • нажмите на многоточие в правом верхнем углу
  • выбрать установить с VSIX

Install from VSIX...


Старый Метод

по словам документация можно скачать расширение напрямую:

URL прямой загрузки расширения находится в виде:

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

это означает, что для того, чтобы скачать расширение, нужно знать

  • имя издателя
  • в версия
  • расширение

вы можете найти всю эту информацию в url.

пример

вот пример для загрузки установка

добавление к ответу t3chb0t, не уверен, почему опция для загрузки не видна, поэтому создал патч для тех, кто использует GreaseMonkey/ TamperMonkey: вы можете найти код gist здесь

или вы можете просто вставить нижеприведенные строки в консоль браузера, и ссылка волшебным образом появится:

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);

все эти предложения велики, но немного больно следовать, потому что выполнение кода для создания URL-адреса или создание этого сумасшедшего URL-адреса вручную немного раздражает...

Итак, я собрал быстрое веб-приложение, чтобы сделать вещи проще. Просто вставьте URL-адрес расширения, которое вы хотите, и из него выйдет загрузка вашего расширения уже с правильным именем: publisher-extension-version.VSIX-файл.

надеюсь, кто-то найдет его полезный: http://vscode-offline.herokuapp.com/

на сегодняшний день URL-адрес загрузки для последний версия расширения встроена дословно в источник страницы на Marketplace, например источник по URL:

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

содержит строку:

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

Я использую следующий Python regexp для извлечения 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"

добавление к превосходному ответу t3chb0t-используйте эти команды PowerShell для установки всех расширений VSCode в папку:

cd C:\PathToFolderWithManyDownloadedExtensionFiles
Get-ChildItem . -Filter *.vsix | ForEach-Object { code --install-extension $_.FullName }

затем перезагрузите VSCode для завершения установки.

теперь вы можете скачать расширение непосредственно в разделе "Ресурсы", есть ссылка "скачать расширение", я надеюсь, что эта информация по-прежнему полезна.

Comments

    Ничего не найдено.