Как установить расширения VSCode в автономном режиме?
Я установил VS-код на машине, которая не подключена и не может быть подключена к интернету. согласно документам, Я могу установить расширения из командной строки, Если у меня есть .vsix, но я не знаю, как получить .vsix на рынке.
как я могу скачать .vsix для расширения, размещенного на рынке?
7 ответов:
обновление 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.
пример
вот пример для загрузки установка
добавление к ответу 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