Как установить расширения VSCode в автономном режиме?
Я установил код VS на компьютере, который не является и не может быть подключен к Интернету. В соответствии с документами, я могу установить расширение из командной строки, если у меня есть .vsix
, но я не знаю, как получить .vsix
от на рынке.
Как загрузить .vsix
для расширения, размещенного на рынке?
Ответы
Ответ 1
ОБНОВЛЕНИЕ 2017-12-13
Теперь вы можете скачать расширение прямо с торговой площадки.
Начиная с VSCode 1.7.1, перетаскивание или открытие расширения больше не работает. Чтобы установить его вручную, вам необходимо:
- открыть боковую панель расширений
- нажмите на многоточие в правом верхнем углу
- выберите Установить из VSIX
Старый метод
Согласно документации можно скачать расширение напрямую:
URL прямого скачивания расширения имеет вид:
https://${publisher}.gallery.vsassets.io/_apis/public/gallery/publisher/${publisher}/extension/${extension name}/${version}/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage
Это означает, что для загрузки расширения необходимо знать
- имя издателя
- версия
- имя расширения
Вы можете найти всю эту информацию в URL.
пример
Вот пример для загрузки установки расширения C# v1.3.0
:
Издатель, расширение и версия
Вы можете найти издателя и имена расширений на домашней странице расширения внутри ее URL:
https://marketplace.visualstudio.com/items?itemName= ms-vscode. CSharp
Здесь издатель - ms-vscode
а расширение - csharp
.
Версию можно найти справа в области " Дополнительная информация".
Чтобы скачать его вам нужно создать ссылку из шаблона выше:
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
и выберите файл .vsix
- Если все прошло хорошо, вы должны увидеть это сообщение в верхней части окна:
Расширение было успешно установлено. Перезапустите, чтобы включить его.
Ответ 2
добавление к 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);
Ответ 3
Все эти предложения велики, но вроде больно следовать, потому что выполнение кода для создания URL-адреса или конструирования этого сумасшедшего URL-адреса вызывает раздражение...
Итак, я собрал быстрое веб-приложение, чтобы упростить работу. Просто вставьте URL-адрес требуемого расширения и выйдите из загрузки вашего расширения, которое уже правильно названо: publisher-extension-version.vsix.
Надеюсь, что кто-то сочтет это полезным:
http://vscode-offline.herokuapp.com/
Ответ 4
На сегодняшний день 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
Я использую regexp из Python для извлечения URL-адреса dl:
urlre = re.search(r'source.+(http.+Microsoft\.VisualStudio\.Services\.VSIXPackage)', content)
if urlre:
return urlre.group(1)
Ответ 5
Я хотел бросить опцию загрузки 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"
Ответ 6
Добавление к отличному ответу t3chb0t - используйте эти команды PowerShell для установки всех расширений VSCode в папку:
cd C:\PathToFolderWithManyDownloadedExtensionFiles
Get-ChildItem . -Filter *.vsix | ForEach-Object { code --install-extension $_.FullName }
Затем перезагрузите VSCode для завершения установки.
Ответ 7
Теперь вы можете загрузить расширение непосредственно в разделе "Ресурсы", там есть ссылка "Загрузить расширение", я надеюсь, что эта информация по-прежнему полезна.
Ответ 8
Для пользователей Python шаблон для использования с отличным ответом t3chbot выглядит так:
https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-python/vsextensions/python/{version_number}/vspackage
не забудьте прокрутить вправо, чтобы увидеть, где вы должны ввести номер версии.
Ответ 9
Если вы ищете сценарий решения:
- Получить бинарный URL для загрузки: вы можете использовать API, но имейте в виду, что для него нет документации. Этот API может возвращать URL для загрузки файлов
.vsix
(см. Пример ниже) - Скачать бинарный файл
- Аккуратно
unzip
двоичный файл в ~/.vscode/extensions/
: вам нужно изменить разархивированное имя каталога, удалить один файл и переместить/переименовать другой.
Для API начните с просмотра следующего примера и подсказок, как изменить заголовок запроса: https://github.com/Microsoft/vscode/blob/master/src/vs/platform/extensionManagement/node/extensionGalleryService.ts.
POST https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery?api-version=5.1-preview HTTP/1.1
content-type: application/json
{
"filters": [
{
"criteria": [
{
"filterType": 8,
"value": "Microsoft.VisualStudio.Code",
},
{
"filterType": 7,
"value": "ms-python.python",
}
],
"pageNumber": 1,
"pageSize": 10,
"sortBy": 0,
"sortOrder": 0,
}
],
"assetTypes": ["Microsoft.VisualStudio.Services.VSIXPackage"],
"flags": 514,
}
Пояснения к приведенному выше примеру:
-
"filterType": 8
- FilterType.Target
more FilterTypes -
"filterType": 7
- FilterType.ExtensionName
more FilterTypes -
"flags": 514
- 0x2 | 0x200
0x2 | 0x200
- Flags.IncludeFiles | Flags.IncludeLatestVersionOnly
Flags.IncludeFiles | Flags.IncludeLatestVersionOnly
- больше флагов - чтобы получить десятичное значение флага, вы можете запустить
python -c "print(0x2|0x200)"
-
"assetTypes": ["Microsoft.VisualStudio.Services.VSIXPackage"]
- получить только ссылку на .vsix
файл больше AssetTypes
Ответ 10
Если у вас есть конкретная (устаревшая) версия VSCode в автономном экземпляре, получение последних расширений может неправильно интегрироваться.
Чтобы убедиться, что VSCode и расширения работают вместе, все они должны быть установлены вместе на онлайн-машине. Это разрешает любые зависимости (с конкретными версиями) и обеспечивает точную настройку автономного экземпляра.
Быстрые шаги:
Установите версию VSCode, отключите обновление и установите расширения. Скопируйте расширения из установленного местоположения и поместите их на целевой компьютер.
Подробные шаги:
Установите точную версию VSCode на онлайн-машине. Затем отключите обновления, перейдя к File -> Preferences -> Settings
. В окне Settings
в разделе User Settings -> Application
перейдите в раздел Update
и измените параметр для Channel
на none
. Это предотвращает доступ VSCode к Интернету и автоматическое обновление ваших версий до последних.
Затем перейдите в раздел расширений VSCode и установите все нужные расширения. Скопируйте установленные расширения из места их установки (с окнами его C:\Users\<username>\.vscode\extensions
) в то же место на целевом компьютере.
Работает отлично.