Pregunta ¿Cómo instalar las extensiones de VSCode fuera de línea?


Instalé VS Code en una máquina que no está, y no puede, conectada a internet. De acuerdo con los documentos, Puedo instalar una extensión desde la línea de comando si tengo el .vsix, pero no sé cómo obtener .vsix del mercado.

¿Cómo puedo descargar el .vsix para una extensión alojada en el mercado?


76
2018-05-06 11:35


origen


Respuestas:


ACTUALIZACIÓN 2017-12-13

Ahora puede descargar la extensión directamente desde mercado.

enter image description here

A partir de VSCode 1.7.1 arrastrar o abrir la extensión ya no funciona. Para instalarlo manualmente, necesitas:

  • abre la barra lateral de extensiones
  • haga clic en los puntos suspensivos en la esquina superior derecha
  • escoger Instalar desde VSIX

Install from VSIX...


Método antiguo

De acuerdo con la documentación es posible descargar una extensión directamente:

La URL de descarga directa de una extensión tiene el formato:

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

Esto significa que para descargar la extensión necesita saber

  • el nombre del editor
  • la versión
  • el nombre de la extensión

Puede encontrar toda esta información en la url.

Ejemplo

Aquí hay un ejemplo para descargar una instalación del C# v1.3.0 extensión:

Editor, extensión y versión

Puede encontrar el editor y los nombres de las extensiones en la página principal de la extensión dentro de su url:

https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp

Aquí el editor es ms-vscode y el nombre de la extensión es csharp.

La versión se puede encontrar en el lado derecho en el Más información zona.

Para descargarlo necesitas crear un enlace desde la plantilla de arriba:

https://ms-vscode.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vscode/extension/csharp/1.3.0/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage

Todos los paquetes tendrán el mismo nombre Microsoft.VisualStudio.Services.VSIXPackage por lo que tendrá que cambiar el nombre después de la descarga si desea saber qué paquete era más tarde.

Instalación

Para instalar la extensión

  • Cambie el nombre del archivo y dele el *.vsix extensión
  • Abierto VS Code, ir File > Open File... o Ctrl+O y selecciona el .vsix archivo
  • Si todo fue bien, debería ver este mensaje en la parte superior de la ventana:

La extensión se instaló con éxito. Reinicie para habilitarlo.


123
2017-08-10 07:31



añadiendo a la respuesta de t3chb0t, no estoy seguro de por qué la opción de descarga no está visible, así que creé un parche para aquellos que usan GreaseMonkey / TamperMonkey: puedes encontrar el código esencial aquí

O simplemente puede pegar las siguientes líneas en la consola de su navegador, y el enlace aparecería mágicamente:

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

18
2017-12-21 10:03



Todas estas sugerencias son geniales, pero un poco dolorosas de seguir porque ejecutar el código para construir la URL o construir esa loca URL a mano es algo molesto ...

Entonces, armé una aplicación web rápida para facilitar las cosas. Simplemente pegue la URL de la extensión que desea y sale la descarga de su extensión que ya se llama correctamente: publisher-extension-version.vsix.

Espero que alguien lo encuentre útil: http://vscode-offline.herokuapp.com/


12
2018-05-14 16:15



A partir de hoy, la URL de descarga para el último la versión de la extensión está insertada textualmente en la fuente de la página en Marketplace, p. fuente en URL:

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

contiene cadena:

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

Utilizo la expresión regular de Python para extraer la URL de dl:

urlre = re.search(r'source.+(http.+Microsoft\.VisualStudio\.Services\.VSIXPackage)', content)
if urlre:
    return urlre.group(1)

4
2018-05-26 12:15



Quería lanzar una opción de descarga de PowerShell en la pila en caso de que alguien más se encuentre con esto. Tengo varios escenarios sin conexión y los ejecuto en un ciclo para descargar y actualizar todas las extensiones que uso sin conexión.

$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"

2
2018-04-07 09:10



Agregar a la excelente respuesta de t3chb0t: use estos comandos de PowerShell para instalar todas las extensiones de VSCode en una carpeta:

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

Luego, recarga VSCode para completar la instalación.


2
2018-03-13 16:22



Ahora puede descargar una extensión directamente en la sección "Recursos", hay un enlace "Descargar extensión", espero que esta información siga siendo útil.


1
2017-11-29 20:14