Anatomie d’un package VSIX

Un package VSIX est un .vsix fichier qui contient une ou plusieurs extensions Visual Studio, ainsi que les métadonnées que Visual Studio utilise pour classifier et installer les extensions. Ces métadonnées sont contenues dans le manifeste VSIX et le fichier [Content_Types].xml . Un package VSIX peut également contenir un ou plusieurs fichiers Extension.vsixlangpack pour fournir du texte d’installation localisé et peut contenir des packages VSIX supplémentaires pour installer des dépendances.

Le format de package VSIX suit la norme OPC (Open Packaging Conventions). Le package contient des fichiers binaires et des fichiers de prise en charge, ainsi qu’un fichier [Content_Types].xml et un .vsix fichier manifeste. Un package VSIX peut contenir la sortie de plusieurs projets, voire plusieurs packages qui ont leurs propres manifestes.

Remarque

Les noms des fichiers inclus dans les packages VSIX ne doivent pas inclure d’espaces, ni de caractères réservés dans l’URI (Uniform Resource Identifiers), comme défini sous [RFC2396].

Manifeste VSIX

Le manifeste VSIX contient des informations sur l’extension à installer et suit le schéma VSIX. Pour plus d’informations, consultez référence au schéma d’extension VSIX 2.0.

Le manifeste VSIX doit être nommé extension.vsixmanifest lorsqu’il est inclus dans un .vsix fichier.

Le contenu

Un package VSIX peut contenir des modèles, des éléments de boîte à outils, des VSPackages ou tout autre type d’extension pris en charge par Visual Studio.

Modules linguistiques

Un package VSIX peut contenir une ou plusieurs fichiers Extension.vsixlangpack pour fournir du texte localisé pendant l’installation. Pour plus d’informations, consultez Localiser les packages VSIX.

Dépendances et références

Un package VSIX peut contenir d’autres packages VSIX en tant que références. Chacun de ces autres packages doit inclure son propre manifeste VSIX.

Si un utilisateur tente d’installer une extension qui a des dépendances, le programme d’installation vérifie que les assemblys requis sont installés sur le système utilisateur. Si les assemblys requis ne sont pas trouvés, extensions et Mises à jour affiche une liste des assemblys manquants.

Si le manifeste d’extension inclut un ou plusieurs éléments Dependency, Extensions et Mises à jour compare le manifeste de chaque référence aux extensions installées sur le système et installe l’extension référencée si elle n’est pas déjà installée. Si une version antérieure d’une extension référencée est installée, la version la plus récente la remplace.

Si un projet d’une solution multi-projet inclut une référence à un autre projet dans la même solution, le package VSIX inclut les dépendances de ce projet. Vous pouvez remplacer ce comportement en sélectionnant la référence du projet interne, puis, dans la fenêtre Propriétés, en définissant les groupes de sortie inclus dans la propriété BuiltProjectOutputGroupVSIX sur .

Pour inclure des DLL satellites à partir d’assemblys référencés dans le package VSIX, ajoutez-y SatelliteDllsProjectOutputGroup les groupes de sortie inclus dans la propriété VSIX .

Emplacement d'installation

Pendant l’installation, extensions et Mises à jour recherche le contenu du package VSIX dans un dossier sous %LocalAppData%\Microsoft\VisualStudio\{version}\Extensions.

Par défaut, l’installation s’applique uniquement à l’utilisateur actuel, car %LocalAppData% est un répertoire spécifique à l’utilisateur. Toutefois, si vous définissez l’élément AllUsers du manifeste Truesur , l’extension sera installée sous ..\{VisualStudioInstallationFolder}\Common7\IDE\Extensions et sera disponible pour tous les utilisateurs de l’ordinateur.

[Content_Types].xml

Le fichier [Content_Types].xml identifie les types de fichiers dans le fichier développé .vsix . Visual Studio utilise ce fichier pendant l’installation du package, mais n’installe pas le fichier lui-même. Pour plus d’informations sur ce fichier, consultez la structure du fichier [Content_types].xml.

Un fichier [Content_Types].xml est requis par la norme OPC (Open Packaging Conventions). Pour plus d’informations sur OPC, consultez OPC : nouvelle norme pour empaqueter vos données.