Qu'est-ce que le format de fichier VSIX ?
.vsix est le format de package d'installation pour les extensions Visual Studio. Introduit avec Visual Studio 2010, il a remplacé l'ancien modèle d'installation d'extensions .vsi et .msi. Le format reste d'actualité jusqu'à Visual Studio 2022.
Structurellement, un fichier .vsix est une archive Open Packaging Conventions - essentiellement un ZIP - contenant un descripteur de métadonnées extension.vsixmanifest, un manifeste OPC [Content_Types].xml, et la charge utile de l'extension : assemblages .dll compilés, composants MEF, fichiers de table de commandes .vsct, extraits de code (snippets) et modèles.
Le fichier extension.vsixmanifest déclare l'ID de l'extension, sa version, son nom d'affichage et les plages InstallationTarget spécifiant les versions et éditions de Visual Studio prises en charge. Deux versions de schéma de manifeste existent : v1 (VS 2010-2011) et v2 (VS 2012 et versions ultérieures, actuel).
Le double-clic sur un .vsix sous Windows lance VSIXInstaller.exe, fourni avec Visual Studio, qui valide et installe l'extension. Les extensions sont également publiées et découvertes via le Visual Studio Marketplace à l'adresse marketplace.visualstudio.com.
Visual Studio Code utilise également des packages .vsix pour ses propres extensions, mais avec un contenu structurellement différent : les extensions VS Code portent un manifeste package.json plutôt que vsixmanifest, ce qui rend les deux familles incompatibles malgré le partage de la même extension de fichier.
Parce que .vsix est une archive ZIP, des outils comme 7-Zip peuvent ouvrir le fichier pour une inspection manuelle. Les octets magiques (50 4B 03 04 à l'offset 0) sont identiques à n'importe quel fichier ZIP standard ; c'est la présence de extension.vsixmanifest à l'intérieur qui identifie un package comme une extension Visual Studio.
Sécurité et sûreté
RISQUE : MEDIUMLes packages VSIX contiennent des DLL .NET compilées qui s'exécutent dans le processus Visual Studio avec une confiance totale. Une extension malveillante peut lire le code source, les identifiants, les variables d'environnement ou installer des portes dérobées persistantes. Installez uniquement depuis le Visual Studio Marketplace ou des sources de confiance. Les packages du Marketplace sont analysés mais le risque zéro n'existe pas. Pour un audit de sécurité : renommez en .zip et inspectez les DLL avant l'installation.
Détails du format
en bref- Package d'extension VS Code - Les extensions VS Code sont également packagées en .vsix (via l'outil vsce) mais utilisent le manifeste package.json, et non le schéma vsixmanifest de Visual Studio.
Programmes qui ouvrent les fichiers VSIX
Détails techniques
spécifications approfondies| Format de conteneur | OPC (Open Packaging Conventions) / archive ZIP avec `[Content_Types].xml` et parties de relation |
| Compression | DEFLATE (par entrée ZIP) ; les entrées individuelles peuvent être stockées sans compression |
| Fichier manifeste | `extension.vsixmanifest` - XML déclarant l'ID de l'extension, la version, l'éditeur, InstallationTarget et les chemins des ressources |
| Versions du schéma de manifeste | v1 (VS 2010-2011) et v2 (VS 2012 et versions ultérieures, actuel) |
| Octets magiques | `50 4B 03 04` à l'offset 0 (en-tête ZIP standard) ; se distingue des autres ZIP par l'entrée `extension.vsixmanifest` à l'intérieur |
| Type MIME | `application/vsix` |
| Taille typique du package | 50 Ko - 50 Mo ; la plupart des extensions font 1-5 Mo ; les grands packs de langue jusqu'à 50 Mo |
| Exécutable d'installation | `VSIXInstaller.exe`, fourni avec Visual Studio ; lancé automatiquement lors du double-clic sur un fichier .vsix |
| Canal de distribution | Visual Studio Marketplace (marketplace.visualstudio.com) ; également téléchargement direct de fichiers et déploiement en entreprise |
| Modèle de sécurité | Le Marketplace valide les signatures Authenticode sur les DLL internes ; pas de signature cryptographique sur le conteneur ZIP lui-même |
| Note VS Code | VS Code utilise également .vsix mais avec un manifeste `package.json` au lieu de `vsixmanifest` ; les deux ne sont pas interchangeables |
| Spécification de la cible | L'élément `InstallationTarget` dans le manifeste liste les ID de produit Visual Studio et les plages de versions pour la compatibilité |
| Publié | 2010 (Visual Studio 2010; replaced older .vsi/.msi extension model) |
| Dernière version | VSIX manifest schema v2.0 (introduced VS 2012; current as of VS 2022) |
| Spécification | learn.microsoft.com |
Conversions VSIX
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers VSIX.