Am instalat VS Cod de pe o mașină care nu este și nu poate fi conectat la internet. Potrivit docspot instalarea unei extensii de la linia de comandă dacă am .vsix
, dar eu nu't știu cum să obțineți `.vsix de piață.
Cum pot descărca `.vsix pentru o prelungire a găzduit pe piața?
Acum puteți descărca extensia direct de la piața.
Ca de VSCode 1.7.1 glisarea sau de deschidere, extinderea nu mai funcționează. În scopul de a-l instalați manual trebuie să:
Conform documentația este posibil pentru a descărca o extensie direct:
O extensie's a descărca direct URL-ul este sub forma:
https://${editura}.galerie.vsassets.io/_apis/public/galerie/persoana/${editura}/extindere/${nume de extensie}/${version}/assetbyname/Microsoft.VisualStudio.Servicii.VSIXPackage
Acest lucru înseamnă că, în scopul de a descărca extensia trebuie să știți
Puteți găsi toate aceste informații în url-ul.
Aici's un exemplu pentru descărcarea unei instala C# v1.3.0
extensie:
Puteți găsi persoana și extensia nume de pe extensia's pagina de start în interiorul url-ul său:
Aici persoana este sm-vscode
și numele extensiei este csharp
.
Versiunea poate fi găsit pe partea dreaptă în Mai multe Informatii zona.
Pentru a descărca aveți nevoie pentru a crea un link la modelul de mai sus:
Toate pachetele vor avea același nume Microsoft.VisualStudio.Servicii.VSIXPackage deci'll nevoie pentru a redenumi după descărcarea, dacă vrei să știi ce pachetul a fost mai târziu.
În scopul de a instala extensia
*.vsix
extensieVS Cod
, du-te la Fișier > Deschide Fișierul... " sau " Ctrl+O
și selectați .vsix
fișierExtensia a fost instalat cu succes. Restart pentru a permite.
adăugând la t3chb0t's a răspunde, nu știu de ce opțiunea de a descărca nu este vizibil, astfel încât a creat un patch pentru cei care folosesc GreaseMonkey/ TamperMonkey: puteți găsi esența cod aici
Sau aveți posibilitatea să lipiți doar liniile de mai jos în browser-ul dvs. consola, iar link-ul va apărea magic:
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);
Toate aceste sugestii sunt mari, dar la fel de dureros să urmeze pentru executarea cod pentru a construi URL-ul sau construirea asta nebun URL-ul de mână este un fel de enervant...
Deci, am încropit repede un web app pentru a face lucrurile mai ușor. Doar lipi URL-ul de extensia pe care doriți și iese afară descărcarea de prelungire deja numit în mod corespunzător: persoana-extensie-versiune.vsix.
Sper că cineva consideră că este util: http://vscode-offline.herokuapp.com/
Începând de astăzi URL-ul de descărcare de ultimele versiune de prelungire este încorporat textual în sursa paginii pe Piață, de exemplu, sursa de la URL-ul:
https://marketplace.visualstudio.com/items?itemName=lukasz-wronski.ftp-sync
conține șirul:
https://lukasz-wronski.gallerycdn.vsassets.io/extensions/lukasz-wronski/ftp-sync/0.3.3/1492669004156/Microsoft.VisualStudio.Services.VSIXPackage
Eu folosesc următoarele Python regexp pentru a extrage dl URL:
urlre = re.search(r'source.+(http.+Microsoft\.VisualStudio\.Services\.VSIXPackage)', content)
if urlre:
return urlre.group(1)
Am vrut să arunc o PowerShell opțiune de descărcare de pe gramada in caz ca mai vine cineva peste asta. Am mai multe offline scenarii și am rula acest lucru într-o buclă pentru a descărca și actualiza toate extensiile eu folosesc offline.
$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"
Adăugând la t3chb0t's răspuns excelent - Utilizați aceste comenzi PowerShell pentru a instala toate VSCode extensiile într-un folder:
cd C:\PathToFolderWithManyDownloadedExtensionFiles
Get-ChildItem . -Filter *.vsix | ForEach-Object { code --install-extension $_.FullName }
Apoi, reîncărcați VSCode pentru a finaliza instalarea.
Pentru Python utilizatorilor model de utilizat, cu t3chbot's răspuns excelent arata ca:
https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-python/vsextensions/python/{version_number}/vspackage
fi sigur de a apăsați tasta de parcurgere dreapta pentru a vedea în cazul în care trebuie să introduceți numărul de versiune.
Dacă sunteți în căutarea pentru un scenariu soluție:
.vsix
fișiere (a se vedea exemplul de mai jos)a dezarhiva
binar în~/.vscode/extensii/`: ai nevoie de a modifica dezarhivat nume de director, elimina un fișier și de mutare/redenumire altul.Pentru API începe prin a uita la următorul exemplu, și pentru informatii de cum se modifica cererea la cap 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
{ "filtre": [ { "criterii": [ { "filterType": 8, "valoarea": "Microsoft.VisualStudio.Codul", }, { "filterType": 7, "valoarea": "ms-python.python", } ], "pageNumber": 1, "pageSize": 10, "sortBy": 0, "sortOrder": 0, } ], "assetTypes": ["Microsoft.VisualStudio.Servicii.VSIXPackage"], "steaguri": 514, } `` Explicațiile de la exemplul de mai sus:
"filterType": 8
- FilterType.Obiectiv
mai mult FilterTypes"filterType": 7
- FilterType.ExtensionName
mai mult FilterTypes"steaguri": 514
- 0x2 | 0x200
- Steaguri.IncludeFiles | Steaguri.IncludeLatestVersionOnly
- mai multe Steaguripython-c "print(0x2|0x200)"
"assetTypes": ["Microsoft.VisualStudio.Servicii.VSIXPackage"]
- pentru a obține doar link-ul de la .vsix
fișier mai mult AssetTypesDacă aveți un specific (legacy) versiune de VSCode pe site-offline de exemplu, trăgând cele mai recente extensiile nu s-ar putea integra în mod corespunzător.
Pentru a asigurați-vă că VSCode și extensiile de a lucra împreună, ele trebuie să fie instalat împreună pe mașină on-line. Acest lucru rezolvă orice dependențe (cu anumite versiuni), și asigură configurația exactă a deconectat exemplu.
Instalați VSCode versiune, opriți actualizarea, și a instala extensii. Copia extensii de instalat locație și puneți-le pe mașina țintă.
Instalați versiunea exactă a VSCode pe mașină on-line. Apoi opriți actualizări de a merge la File -> Preferences -> Setări
. În Setări
ferestrei, în secțiunea Setări Utilizator -> Cerere
, du-te la Actualizare
secțiune, și de a schimba parametrul de Canal
, niciunul
. Acest lucru previne VSCode de la a ajunge la internet și auto-actualizarea versiunile mai recente.
Apoi du-te la VSCode extensiile de secțiune și a instala toate de dorit extensii. Copia extensiile instalate din locație de instalare (cu windows său C:\Users\<nume de utilizator>\.vscode\extensions
) la aceeași locație de pe computerul țintă.
Functioneaza perfect.