Référence de schéma 2.0 Extension VSIXVSIX Extension Schema 2.0 Reference

Un fichier de manifeste de déploiement VSIX décrit le contenu d’un package VSIX.A VSIX deployment manifest file describes the contents of a VSIX package. Le format de fichier est régi par un schéma.The file format is governed by a schema. La version 2.0 de ce schéma prend en charge l’ajout d’attributs et types personnalisés.Version 2.0 of this schema supports the adding of custom types and attributes. Le schéma du manifeste est extensible.The schema of the manifest is extensible. Le chargeur de manifeste ignore les éléments et attributs qui ne comprend pas XML.The manifest loader ignores XML elements and attributes that it doesn't understand.

Important

Visual Studio 2015 peut charger des fichiers VSIX dans les formats de Visual Studio 2010, Visual Studio 2012 ou Visual Studio 2013.Visual Studio 2015 can load VSIX files in the Visual Studio 2010, Visual Studio 2012, or Visual Studio 2013 formats.

Schéma de manifeste de packagePackage Manifest Schema

L’élément racine du fichier XML manifeste est <PackageManifest>, avec un seul attribut Version, qui est la version du format de manifeste.The root element of the manifest XML file is <PackageManifest>, with a single attribute Version, which is the version of the manifest format. Si des modifications majeures sont apportées au format, le format de version changera.If major changes are made to the format, the version format will be changed. Cette rubrique décrit le format de manifeste version 2.0, qui est spécifiée dans le manifeste en définissant le Version à la Version de la valeur d’attribut = « 2.0 ».This topic describes manifest format version 2.0, which is specified in the manifest by setting the Version attribute to the value Version="2.0".

Élément PackageManifestPackageManifest Element

Dans la <PackageManifest> élément racine, vous pouvez utiliser les éléments suivants :Within the <PackageManifest> root element, you can use the following elements:

  • <Metadata> -Les métadonnées et la publicité plus d’informations sur le package lui-même.<Metadata> - Metadata and advertising information about the package itself. Seul Metadata élément est autorisé dans le manifeste.Only one Metadata element is allowed in the manifest.

  • <Installation> – Cette section définit la manière de dans que ce package d’extension peut être installé, y compris les références d’application qui peuvent être installées.<Installation> - This section defines the way this extension package can be installed, including the application SKUs that it can install into. Un seul Installation élément est autorisé dans le manifeste.Only a single Installation element is allowed in the manifest. Un manifeste doit avoir un Installation élément ou ce package ne s’installe pas dans une référence.A manifest must have an Installation element, or this package won't install into any SKU.

  • <Dependencies> -Une liste facultative de dépendances pour ce package sont définies ici.<Dependencies> - An optional list of dependencies for this package are defined here.

  • <Assets> -Cette section contient toutes les ressources contenues dans ce package.<Assets> - This section contains all of the assets contained within this package. Sans cette section, ce package ne sera pas surface aucun contenu.Without this section, this package won't surface any content.

  • <AnyElement>* -Le schéma de manifeste est suffisamment flexible pour permettre à d’autres éléments.<AnyElement>* - The manifest schema is flexible enough to allow any other elements. Tous les éléments enfants non reconnus par le chargeur de manifeste sont exposés dans l’API du Gestionnaire d’extensions en tant qu’objets XmlElement supplémentaires.Any child elements not recognized by the manifest loader are exposed in the Extension Manager API as extra XmlElement objects. À l’aide de ces éléments enfants, les extensions VSIX peuvent définir des données supplémentaires dans le fichier manifeste accessible par code en cours d’exécution dans Visual Studio lors de l’exécution.Using these child elements, VSIX extensions can define additional data in the manifest file that code running in Visual Studio can access at runtime. Consultez AdditionalElements et LocalizedAdditionalElements.See AdditionalElements and LocalizedAdditionalElements.

Élément de métadonnéesMetadata Element

Cette section est les métadonnées sur le package, son identité et les informations.This section is the metadata about the package, its identity, and advertising information. <Metadata> contient les éléments suivants :<Metadata> contains the following elements:

  • <Identity> -Ceci définit les informations d’identification pour ce package et inclut les attributs suivants :<Identity> - This defines identification information for this package and includes the following attributes:

    • Id -Cet attribut doit être un ID unique pour le package choisi par son auteur.Id - This attribute must be a unique ID for the package chosen by its author. Le nom doit être qualifié de la même façon que les types CLR sont namespaced : Company.Product.Feature.Name.The name should be qualified the same way CLR types are namespaced: Company.Product.Feature.Name. Le Id attribut est limité à 100 caractères.The Id attribute is limited to 100 characters.

    • Version -Définit la version de ce package et son contenu.Version - This defines the version of this package and its contents. Cet attribut suit le format de contrôle de version d’assembly CLR : Major.Minor.Build.Revision (1.2.40308.00).This attribute follows the CLR assembly versioning format: Major.Minor.Build.Revision (1.2.40308.00). Un package avec un numéro de version supérieur est considérée comme des mises à jour le package et peut être installé sur la version installée existante.A package with a higher version number is considered updates to the package, and can be installed over the existing installed version.

    • Language -Cet attribut est la langue par défaut pour le package et correspond à des données textuelles de ce manifeste.Language - This attribute is the default language for the package and corresponds to the textual data in this manifest. Cet attribut suit la convention de code CLR aux paramètres régionaux pour les assemblys de ressources, par exemple : en-us, fr, fr-fr.This attribute follows the CLR locale code convention for resource assemblies, for example: en-us, en, fr-fr. Vous pouvez spécifier neutral pour déclarer une extension indépendante du langage qui s’exécute sur n’importe quelle version de Visual Studio.You can specify neutral to declare a language-neutral extension that will run on any version of Visual Studio. La valeur par défaut est neutral.The default value is neutral.

    • Publisher -Cet attribut identifie le serveur de publication de ce package, une société ou le nom individuel.Publisher - This attribute identifies the publisher of this package, either a company or individual name. Le Publisher attribut est limité à 100 caractères.The Publisher attribute is limited to 100 characters.

  • <DisplayName> -Cet élément spécifie le nom du package convivial qui s’affiche dans le Gestionnaire d’extensions UI.<DisplayName> - This element specifies the user-friendly package name that is displayed in the Extension Manager UI. Le DisplayName contenu est limité à 50 caractères.The DisplayName content is limited to 50 characters.

  • <Description> -Cet élément facultatif est une brève description du package et de son contenu est affichée dans le Gestionnaire d’extensions UI.<Description> - This optional element is a short description of the package and its contents that is displayed in Extension Manager UI. Le Description contenu peut contenir n’importe quel texte que vous le souhaitez, mais il a limité à 1000 caractères.The Description content can contain any text that you want, but it's limited to 1000 characters.

  • <MoreInfo> -Cet élément facultatif est une URL vers une page en ligne qui contient une description complète de ce package.<MoreInfo> - This optional element is a URL to a page online that contains a full description of this package. Le protocole doit être spécifié en tant que http.The protocol must be specified as http.

  • <License> -Cet élément facultatif est un chemin d’accès relatif à un fichier de licence (.txt, .rtf) contenu dans le package.<License> - This optional element is a relative path to a license file (.txt, .rtf) contained in the package.

  • <ReleaseNotes> -Cet élément facultatif est un chemin d’accès relatif à un fichier de notes de version contenu dans le package (.txt, .rtf) ou bien une URL vers un site Web qui affiche les notes de publication.<ReleaseNotes> - This optional element is either a relative path to a release notes file contained in the package (.txt, .rtf) or else a URL to a website that displays the release notes.

  • <Icon> -Cet élément facultatif est un chemin d’accès relatif vers un fichier image (png, bmp, jpeg, ico) contenu dans le package.<Icon> - This optional element is a relative path to an image file (png, bmp, jpeg, ico) contained in the package. L’image d’icône doit être de 32 x 32 pixels (ou sera réduite à cette taille) et s’affiche dans l’interface utilisateur de listview.The icon image should be 32x32 pixels (or will be shrunk to that size) and appears in the listview UI. Si aucun Icon élément est spécifié, l’interface utilisateur utilise la valeur par défaut.If no Icon element is specified, the UI uses a default.

  • <PreviewImage> -Cet élément facultatif est un chemin d’accès relatif vers un fichier image (png, bmp, jpeg) contenu dans le package.<PreviewImage> - This optional element is a relative path to an image file (png, bmp, jpeg) contained in the package. L’image d’aperçu doit être de 200 x 200 pixels et affiché dans les détails de l’interface utilisateur.The preview image should be 200x200 pixels, and displayed in the details UI. Si aucun PreviewImage élément est spécifié, l’interface utilisateur utilise la valeur par défaut.If no PreviewImage element is specified, the UI uses a default.

  • <Tags> -Cet élément facultatif répertorie les balises de texte délimitée par des points-virgules qui sont utilisées pour les indicateurs de recherche.<Tags> - This optional element lists additional semicolon-delimited text tags that are used for search hints. Le Tags est limitée à 100 caractères.The Tags element is limited to 100 characters.

  • <GettingStartedGuide> -Cet élément facultatif est un chemin d’accès relatif à un fichier HTML ou une URL vers un site Web qui contient des informations sur l’utilisation de l’extension ou le contenu de ce package.<GettingStartedGuide> - This optional element is either a relative path to an HTML file or a URL to a website that contains information about how to use the extension or content within this package. Ce guide est lancé dans le cadre d’une installation.This guide is launched as part of an installation.

  • <AnyElement>* -Le schéma de manifeste est suffisamment flexible pour permettre à d’autres éléments.<AnyElement>* - The manifest schema is flexible enough to allow any other elements. Tous les éléments enfants qui ne sont pas reconnus par le chargeur de manifeste sont exposés en tant que liste d’objets XmlElement.Any child elements that aren't recognized by the manifest loader are exposed as a list of XmlElement objects. À l’aide de ces éléments enfants, les extensions VSIX peuvent définissent des données supplémentaires dans le fichier manifeste et les énumérer lors de l’exécution.Using these child elements, VSIX extensions can define additional data in the manifest file and enumerate them at runtime.

Élément d’installationInstallation Element

Cette section définit la façon de que ce package peut être installé et les références de l’application que vous pouvez l’installer dans.This section defines the way this package can be installed and the application SKUs that it can install into. Cette section contient les attributs suivants :This section contains the following attributes:

  • Experimental -Définissez cet attribut sur « True » si vous disposez d’une extension qui est actuellement installée pour tous les utilisateurs, mais que vous développez une version mise à jour sur le même ordinateur.Experimental - Set this attribute to true if you have an extension that is currently installed for all users, but you are developing an updated version on the same computer. Par exemple, si vous avez installé MyExtension 1.0 pour tous les utilisateurs, mais que vous souhaitez déboguer MyExtension 2.0 sur le même ordinateur, définissez expérimental = « true ».For example, if you have installed MyExtension 1.0 for all users, but you want to debug MyExtension 2.0 on the same computer, set Experimental="true". Cet attribut est disponible dans Visual Studio 2015 Update 1 et versions ultérieures.This attribute is available in Visual Studio 2015 Update 1 and later.

  • Scope -Cet attribut peut prendre la valeur « Global » ou « ProductExtension » :Scope - This attribute can take the value "Global" or "ProductExtension":

    • « Globaux » Spécifie que l’installation ne s’étend pas à une référence (SKU) spécifique."Global" specifies that the installation is not scoped to a specific SKU. Par exemple, cette valeur est utilisée lorsqu’un SDK d’Extension est installé.For example, this value is used when an Extension SDK is installed.

    • « ProductExtension » Spécifie qu’une Extension VSIX traditionnel (version 1.0) limitées à des références SKU de Visual Studio est installée."ProductExtension" specifies that a traditional VSIX Extension (version 1.0) scoped to individual Visual Studio SKUs is installed. Valeur par défaut.This is the default value.

  • AllUsers -Cet attribut facultatif indique si ce package doit être installé pour tous les utilisateurs.AllUsers - This optional attribute specifies whether this package will be installed for all users. Par défaut, cet attribut est false, ce qui indique que le package ne par utilisateur.By default, this attribute is false, which specifies that the package is per user. (Lorsque vous définissez cette valeur sur true, l’utilisateur lors de l’installation doit élever au niveau de privilèges d’administrateur pour installer l’extension VSIX qui en résulte.(When you set this value to true, the installing user must elevate to administrative privilege level to install the resulting VSIX.

  • InstalledByMsi -Cet attribut facultatif indique si ce package est installé par un fichier MSI.InstalledByMsi - This optional attribute specifies whether this package is installed by an MSI. Packages installés par un fichier MSI sont installés et gérés par MSI (programmes et fonctionnalités) et non par Visual Studio Extension Manager.Packages installed by an MSI are installed and managed by MSI (Programs and Features) and not by the Visual Studio Extension Manager. Par défaut, cet attribut est false, ce qui indique que le package n’est pas installé par un fichier MSI.By default, this attribute is false, which specifies that the package is not installed by an MSI.

  • SystemComponent -Cet attribut facultatif indique si ce package doit être considéré comme un composant du système.SystemComponent - This optional attribute specifies whether this package should be considered a system component. Composants du système de ne pas afficher dans le Gestionnaire d’extensions UI et ne peut pas être mis à jour.System components don't show in the Extension Manager UI and cannot be updated. Par défaut, cet attribut est false, ce qui indique que le package n’est pas un composant du système.By default, this attribute is false, which specifies that the package isn't a system component.

  • AnyAttribute* -La Installation élément accepte un ensemble extensible d’attributs qui seront exposées lors de l’exécution en tant qu’un dictionnaire de paires nom-valeur.AnyAttribute* - The Installation element accepts an open-ended set of attributes that will be exposed at runtime as a name-value pair dictionary.

  • <InstallationTarget> -Cet élément contrôle l’emplacement où le programme d’installation VSIX installe le package.<InstallationTarget> -This element controls the location where the VSIX installer installs the package. Si la valeur de la Scope attribut est « ProductExtension », le package doit cibler une référence (SKU) qui a installé un fichier manifeste dans le cadre de son contenu pour annoncer sa disponibilité aux extensions.If the value of the Scope attribute is "ProductExtension" the package must target a SKU which has installed a manifest file as part of its contents to advertise its availability to extensions. Le <InstallationTarget> élément possède les éléments suivants lorsque des attributs le Scope attribut a explicite ou par défaut « ProductExtension » :The <InstallationTarget> element has the following attributes when the Scope attribute has the explicit or default value "ProductExtension":

    • Id -Cet attribut identifie le package.Id - This attribute identifies the package. L’attribut suit la convention d’espace de noms : Company.Product.Feature.Name.The attribute follows the namespace convention: Company.Product.Feature.Name. Le Id attribut peut contenir uniquement des caractères alphanumériques et est limité à 100 caractères.The Id attribute can contain only alphanumeric characters and is limited to 100 characters. Valeurs attendues :Expected values:

      • Microsoft.VisualStudio.IntegratedShellMicrosoft.VisualStudio.IntegratedShell

      • Microsoft.VisualStudio.ProMicrosoft.VisualStudio.Pro

      • Microsoft.VisualStudio.PremiumMicrosoft.VisualStudio.Premium

      • Microsoft.VisualStudio.UltimateMicrosoft.VisualStudio.Ultimate

      • Microsoft.VisualStudio.VWDExpressMicrosoft.VisualStudio.VWDExpress

      • Microsoft.VisualStudio.VPDExpressMicrosoft.VisualStudio.VPDExpress

      • Microsoft.VisualStudio.VSWinExpressMicrosoft.VisualStudio.VSWinExpress

      • Microsoft.VisualStudio.VSLSMicrosoft.VisualStudio.VSLS

      • My.Shell.AppMy.Shell.App

    • Version -Cet attribut spécifie une plage de versions avec les versions prises en charge minimales et maximales de cette référence SKU.Version - This attribute specifies a version range with the minimum and maximum supported versions of this SKU. Un package peut décrit en détail les versions de références SKU pris en charge.A package can detail the versions of the SKUs that it supports. La notation de plage de version est [10.0-11.0], oùThe version range notation is [10.0 - 11.0], where

      • [-version minimale incluse.[ - minimum version inclusive.

      • ]-version maximale inclus.] - maximum version inclusive.

      • (-version minimale exclusive.( - minimum version exclusive.

      • )-version maximale exclusif.) - maximum version exclusive.

      • Version unique # - uniquement la version spécifiée.Single version # - only the specified version.

      Important

      La version 2.0 du schéma VSIX a été introduite dans Visual Studio 2012.Version 2.0 of the VSIX Schema was introduced in Visual Studio 2012. Pour utiliser ce schéma vous devez disposer de Visual Studio 2012 ou version ultérieure installé sur l’ordinateur et utilisez le VSIXInstaller.exe qui fait partie de ce produit.To use this schema you must have Visual Studio 2012 or later installed on the machine and use the VSIXInstaller.exe that is part of that product. Vous pouvez cibler des versions antérieures de Visual Studio avec un Visual Studio 2012 ou d’un VSIXInstaller ultérieure, mais uniquement en utilisant les versions ultérieures du programme d’installation.You can target earlier versions of Visual Studio with a Visual Studio 2012 or later VSIXInstaller, but only by using the later versions of the installer.

    • AnyAttribute* -La <InstallationTarget> élément permet un ensemble extensible d’attributs que vous allez être exposés au runtime en tant que paire nom-valeur dictionnaire.AnyAttribute* - The <InstallationTarget> element allows an open-ended set of attributes that'll be exposed at runtime as a name-value pair dictionary.

Élément de dépendancesDependencies Element

Cet élément contient une liste de dépendances qui déclare de ce package.This element contains a list of dependencies that this package declares. Si toutes les dépendances sont spécifiés, ces packages (identifiés par leurs Id) doit être installé avant.If any dependencies are specified, those packages (identified by their Id) must be have been installed before.

  • <Dependency> élément - cet élément enfant a les attributs suivants :<Dependency> element - This child element has the following attributes:

    • Id -Cet attribut doit être un ID unique pour le package dépendant.Id - This attribute must be a unique ID for the dependent package. Cette valeur d’identité doit correspondre à la <Metadata><Identity>Id attribut d’un package dont dépend ce package.This identity value must match the <Metadata><Identity>Id attribute of a package that this package is dependent on. Le Id attribut suit la convention d’espace de noms : Company.Product.Feature.Name.The Id attribute follows the namespace convention: Company.Product.Feature.Name. L’attribut peut contenir uniquement des caractères alphanumériques et est limité à 100 caractères.The attribute can contain only alphanumeric characters and is limited to 100 characters.

    • Version -Cet attribut spécifie une plage de versions avec les versions prises en charge minimales et maximales de cette référence SKU.Version - This attribute specifies a version range with the minimum and maximum supported versions of this SKU. Un package peut décrit en détail les versions de références SKU pris en charge.A package can detail the versions of the SKUs that it supports. La notation de plage de version est [12.0, 13.0], où :The version range notation is [12.0, 13.0], where:

      • [-version minimale incluse.[ - minimum version inclusive.

      • ]-version maximale inclus.] - maximum version inclusive.

      • (-version minimale exclusive.( - minimum version exclusive.

      • )-version maximale exclusif.) - maximum version exclusive.

      • Version unique # - uniquement la version spécifiée.Single version # - only the specified version.

    • DisplayName -Cet attribut est le nom complet du package dépendant qui est utilisé dans les éléments d’interface utilisateur tels que les boîtes de dialogue et les messages d’erreur.DisplayName - This attribute is the display name of the dependent package which is used in UI elements such as dialog boxes and error messages. L’attribut est facultatif, sauf si le package dépendant est installé par MSI.The attribute is optional unless the dependent package is installed by MSI.

    • Location -Cet attribut facultatif spécifie le chemin d’accès relatif au sein de cet extension VSIX à un package VSIX imbriqué ou une URL vers l’emplacement de téléchargement de la dépendance.Location - This optional attribute specifies either the relative path within this VSIX to a nested VSIX package or a URL to the download location for the dependency. Cet attribut est utilisé pour aider l’utilisateur à rechercher le package requis.This attribute is used to help the user locate the prerequisite package.

    • AnyAttribute* -La Dependency élément accepte un ensemble extensible d’attributs qui seront exposées lors de l’exécution en tant qu’un dictionnaire de paires nom-valeur.AnyAttribute* - The Dependency element accepts an open-ended set of attributes that will be exposed at runtime as a name-value pair dictionary.

Élément de ressourcesAssets Element

Cet élément contient une liste de <Asset> étiquettes pour chaque élément d’extension ou contenu exposés par ce package.This element contains a list of <Asset> tags for each extension or content element surfaced by this package.

  • <Asset> -Cet élément contient les attributs et les éléments suivants :<Asset> - This element contains the following attributes and elements:

    • Type -C’est le type d’extension ou de contenu représenté par cet élément.Type - This is the type of extension or content represented by this element. Chaque <Asset> l’élément doit avoir un seul Type, mais plusieurs <Asset> éléments peuvent avoir le même Type.Each <Asset> element must have a single Type, but multiple <Asset> elements may have the same Type. Cet attribut doit être représenté comme un nom qualifié complet, selon les conventions de l’espace de noms.This attribute should be represented as a fully qualified name, according to namespace conventions. Les types connus sont :The known types are:

      1. Microsoft.VisualStudio.VsPackageMicrosoft.VisualStudio.VsPackage

      2. Microsoft.VisualStudio.MefComponentMicrosoft.VisualStudio.MefComponent

      3. Microsoft.VisualStudio.ToolboxControlMicrosoft.VisualStudio.ToolboxControl

      4. Microsoft.VisualStudio.SamplesMicrosoft.VisualStudio.Samples

      5. Microsoft.VisualStudio.ProjectTemplateMicrosoft.VisualStudio.ProjectTemplate

      6. Microsoft.VisualStudio.ItemTemplateMicrosoft.VisualStudio.ItemTemplate

      7. Microsoft.VisualStudio.AssemblyMicrosoft.VisualStudio.Assembly

        Vous pouvez créer vos propres types et leur attribuer des noms uniques.You can create your own types, and give them unique names. Au moment de l’exécution à l’intérieur de Visual Studio, votre code peut énumérer et accéder à ces types personnalisés via l’API du Gestionnaire d’extensions.At run time inside Visual Studio, your code can enumerate and access these custom types through the Extension Manager API.

    • Chemin d’accès - le chemin d’accès relatif au fichier ou dossier dans le package qui contient l’élément multimédia.Path - the relative path to the file or folder within the package that contains the asset.

    • AnyAttribute* -Un durée indéterminée ensemble d’attributs que vous allez être exposés au runtime comme un dictionnaire de paires nom-valeur.AnyAttribute* - An open-ended set of attributes that'll be exposed at runtime as a name-value pair dictionary.

      <AnyElement>* -N’importe quel contenu structuré est autorisé entre un <Asset> commencer et la balise de fin.<AnyElement>* - Any structured content is allowed between an <Asset> begin and end tag. Tous les éléments sont exposés en tant que liste d’objets XmlElement.All elements are exposed as a list of XmlElement objects. Les extensions VSIX peuvent définir les métadonnées spécifiques au type structurée dans le fichier manifeste et les énumérer lors de l’exécution.VSIX extensions can define structured type-specific metadata in the manifest file and enumerate them at runtime.

Manifeste de l’exempleSample Manifest

<?xml version="1.0" encoding="utf-8"?>  
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">  
  <Metadata>  
    <Identity Id="0000000-0000-0000-0000-000000000000" Version="1.0" Language="en-US" Publisher="Company" />  
    <DisplayName>Test Package</DisplayName>  
    <Description>Information about my package</Description>  
    <MoreInfo>http://www.fabrikam.com/Extension1/</MoreInfo>  
    <License>eula.rtf</License>  
    <ReleaseNotes>notes.txt</ReleaseNotes>  
    <Icon>Images\icon.png</Icon>  
    <PreviewImage>Images\preview.png</PreviewImage>  
  </Metadata>  
  <Installation InstalledByMsi="false" AllUsers="false" SystemComponent="false" Scope="ProductExtension">  
    <InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[11.0, 12.0]" />  
  </Installation>  
  <Dependencies>  
    <Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.5,)" />  
    <Dependency Id="Microsoft.VisualStudio.MPF.12.0" DisplayName="Visual Studio MPF 12.0" d:Source="Installed" Version="[12.0]" />  
  </Dependencies>  
  <Assets>  
    <Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />  
  </Assets>  
</PackageManifest>  

Voir aussiSee Also

Publication d’extensions Visual StudioShipping Visual Studio Extensions