155 votes

Comment puis-je installer les extensions Visual Studio Code hors ligne ?

J'ai installé Visual Studio Code sur une machine qui n'est pas, et ne peut pas être, connectée à l'Internet. Selon la documentation Je peux installer une extension à partir de la ligne de commande si j'ai l'adresse de l'utilisateur. .vsix mais je ne sais pas comment obtenir l'adresse de l'entreprise. .vsix du marché.

Comment puis-je télécharger le .vsix pour une extension hébergée sur le marché ?

0 votes

Utilisez télécharger-vsix téléchargez le vsix. i.e) rajasimon.github.io/

232voto

metalnoise Points 42

MISE À JOUR 2017-12-13

Vous pouvez désormais télécharger l'extension directement à partir du site marché .

Enter image description here

A partir de Visual Studio Code 1.7.1, faire glisser ou ouvrir l'extension ne fonctionne plus. Afin de l'installer manuellement, vous devez :

  • ouvrir la barre latérale des extensions
  • cliquez sur le point de suspension dans le coin supérieur droit.
  • choisissez Installer à partir de VSIX

Install from VSIX...


Ancienne méthode

Selon la documentation il est possible de télécharger directement une extension :

L'URL de téléchargement direct d'une extension se présente sous la forme :

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

Cela signifie que pour télécharger l'extension, vous devez connaître

  • le nom de l'éditeur
  • la version
  • le nom de l'extension

Vous pouvez trouver toutes ces informations dans l'URL.

Exemple

Voici un exemple de téléchargement et d'installation de l'application C# v1.3.0 extension :

Éditeur, extension et version

Vous pouvez trouver les noms de l'éditeur et de l'extension sur la page d'accueil de l'extension dans son URL :

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

Ici, l'éditeur est ms-vscode et le nom de l'extension est csharp .

La version peut être trouvée sur le côté droit dans la rubrique Plus d'informations zone.

Pour le télécharger, vous devez créer un lien à partir du modèle ci-dessus :

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

Tous les paquets auront le même nom Microsoft.VisualStudio.Services.VSIXPackage Vous devrez donc le renommer après le téléchargement si vous voulez savoir de quel paquet il s'agit plus tard.

Installation

Afin d'installer l'extension

  • Renommez le fichier et donnez-lui le nom *.vsix extension
  • Ouvrez Visual Studio Code, allez dans le menu FichierOuvrir un fichier... ou Ctrl + O et sélectionnez le .vsix fichier
  • Si tout s'est bien passé, vous devriez voir ce message en haut de la fenêtre :

L'extension a été installée avec succès. Redémarrez pour l'activer.

10 votes

J'ai fait un bookmarklet à utiliser sur la page de l'extension. Voyons voir combien de temps cela reste fonctionnel ! javascript:(function() {var ver = document.querySelector("[data-bind='text: version']").innerText; var pub = window.location.href.replace(/.*itemName=(.*?)\.(.*)/,"$1"); var name = window.location.href.replace(/.*itemName=(.*?)\.(.*)/,"$2"); window.location = "https://" + pub + ".gallery.vsassets.io/_apis/public/gallery/publisher/" + pub + "/extension/" + name + "/" + ver + "/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage";}‌​)()

0 votes

L'étape d'installation n'a pas fonctionné pour moi, dans VS Code 1.7.1 (octobre 2016).

0 votes

@RoyDictus ideed, VSCode montre le lien vers les extensions au lieu de les installer :-| ils doivent avoir changé quelque chose.

19voto

mido22 Points 443

Pour compléter la réponse de t3chb0t, je ne sais pas pourquoi l'option de téléchargement n'est pas visible, j'ai donc créé un patch pour ceux qui utilisent GreaseMonkey/ TamperMonkey : vous pouvez trouver le code gist ici

Ou vous pouvez simplement coller les lignes ci-dessous dans la console de votre navigateur, et le lien apparaîtra comme par magie :

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

0 votes

Sympathique mais redondant puisque VSCode fournit maintenant le lien sur leur site web.

1 votes

@Blowsie pas systématiquement, sous Windows je vois le lien, sous Linux non.

16voto

Yaakov Chaikin Points 131

Toutes ces suggestions sont géniales, mais un peu pénibles à suivre parce que l'exécution du code pour construire l'URL ou la construction de cette URL folle à la main est un peu ennuyeuse....

J'ai donc créé une application web rapide pour faciliter les choses. Il suffit de coller l'URL de l'extension que vous voulez et il en ressort le téléchargement de votre extension déjà correctement nommée : publisher-extension-version.vsix.

J'espère que quelqu'un trouvera cela utile : http://vscode-offline.herokuapp.com/

0 votes

Sympathique mais redondant puisque VSCode fournit maintenant le lien sur leur site web.

1 votes

Correct. C'est un ajout très récent de leur part. Je vais probablement retirer mon service dans un avenir proche.

0 votes

@YaakovChaikin le lien ne s'affiche pas toujours, mais votre service fonctionne systématiquement.

5voto

John Doe Points 885

À partir d'aujourd'hui, l'URL de téléchargement de la dernier site La version de l'extension est incorporée textuellement dans la source de la page sur Marketplace, par exemple la source à l'URL :

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

contient une chaîne de caractères :

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

J'utilise le regexp Python suivant pour extraire l'URL du dl :

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

4voto

Adam Haynes Points 21

Je voulais proposer une option de téléchargement PowerShell au cas où quelqu'un d'autre tomberait sur ce problème. J'ai plusieurs scénarios hors ligne et j'exécute ceci en boucle pour télécharger et mettre à jour toutes les extensions que j'utilise hors ligne.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X