Créer une extension avec un VSPackageCreate an extension with a VSPackage

Cette procédure pas à pas vous montre comment créer un projet VSIX et ajouter un élément de projet VSPackage.This walkthrough shows you how to create a VSIX project and add a VSPackage project item. Nous allons utiliser le VSPackage pour obtenir le service de l’interpréteur de commandes de l’interface utilisateur pour afficher une boîte de message.We will use the VSPackage to get the UI Shell service in order to show a message box.

PrérequisPrerequisites

À partir de Visual Studio 2015, vous n’installez pas le Kit de développement logiciel Visual Studio à partir du centre de téléchargement.Starting in Visual Studio 2015, you do not install the Visual Studio SDK from the download center. Il est inclus comme fonctionnalité facultative dans le programme d’installation de Visual Studio.It is included as an optional feature in Visual Studio setup. Vous pouvez également installer le kit SDK VS par la suite.You can also install the VS SDK later on. Pour plus d’informations, consultez installer le SDK Visual Studio.For more information, see Install the Visual Studio SDK.

Créer un VSPackageCreate a VSPackage

  1. Créez un projet VSIX nommé FirstPackage.Create a VSIX project named FirstPackage. Vous pouvez trouver le modèle de projet VSIX dans le nouveau projet boîte de dialogue sous Visual C# > extensibilité.You can find the VSIX project template in the New Project dialog under Visual C# > Extensibility.

  2. Quand le projet s’ouvre, ajoutez un modèle d’élément de package Visual Studio nommé FirstPackage.When the project opens, add a Visual Studio package item template named FirstPackage. Dans le l’Explorateur de solutions, cliquez sur le nœud du projet et sélectionnez ajouter > un nouvel élément.In the Solution Explorer, right-click the project node and select Add > New Item. Dans le ajouter un nouvel élément boîte de dialogue, accédez à Visual C# > extensibilité et sélectionnez Package Visual Studio.In the Add New Item dialog, go to Visual C# > Extensibility and select Visual Studio Package. Dans le nom en bas de la fenêtre, modifiez le nom de fichier de commande pour FirstPackage.cs.In the Name field at the bottom of the window, change the command file name to FirstPackage.cs.

  3. Générez le projet et commencez le débogage.Build the project and start debugging.

    L’instance expérimentale de Visual Studio s’affiche.The experimental instance of Visual Studio appears. Pour plus d’informations sur l’instance expérimentale, consultez l’instance expérimentale.For more information about the experimental instance, see The experimental instance.

  4. Dans l’instance expérimentale, ouvrez le outils > Extensions et mises à jour fenêtre.In the experimental instance, open the Tools > Extensions and Updates window. Vous devez voir le FirstPackage extension ici.You should see the FirstPackage extension here. (Si vous ouvrez Extensions et mises à jour dans votre instance de travail de Visual Studio, vous ne verrez pas FirstPackage).(If you open Extensions and Updates in your working instance of Visual Studio, you won't see FirstPackage).

Charger le VSPackageLoad the VSPackage

À ce stade l’extension ne se charge pas, car il n’a rien qui oblige ce dernier à charger.At this point the extension does not load, because there is nothing that causes it to load. Vous pouvez généralement charger une extension lorsque vous interagissez avec son interface utilisateur (en cliquant sur une commande de menu, en ouvrant une fenêtre outil), ou en spécifiant que le VSPackage doit se charger dans un contexte de l’interface utilisateur spécifique.You can generally load an extension when you interact with its UI (clicking a menu command, opening a tool window), or by specifying that the VSPackage should load in a specific UI context. Pour plus d’informations sur le chargement des contextes de VSPackages et l’interface utilisateur, consultez le chargement de VSPackages.For more information about loading VSPackages and UI contexts, see Loading VSPackages. Pour cette procédure, nous allons vous montrer comment charger un VSPackage lorsqu’une solution est ouverte.For this procedure, we'll show you how to load a VSPackage when a solution is open.

  1. Ouvrez le FirstPackage.cs fichier.Open the FirstPackage.cs file. Recherchez la déclaration de la FirstPackage classe.Look for the declaration of the FirstPackage class. Remplacez les attributs existants avec les éléments suivants :Replace the existing attributes with following:

    [PackageRegistration(UseManagedResourcesOnly = true)]  
    [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)] // Info on this package for Help/About  
    [ProvideAutoLoad(UIContextGuids80.SolutionExists)]  
    [Guid(FirstPackage.PackageGuidString)]  
    public sealed class FirstPackage : Package  
    
  2. Nous allons ajouter un message qui nous permet de savoir que le VSPackage a été chargé.Let's add a message that lets us know that the VSPackage has loaded. Nous utilisons le VSPackage Initialize() méthode pour ce faire, car vous pouvez obtenir Visual Studio services uniquement une fois que le VSPackage a été placé.We use the VSPackage's Initialize() method to do this, because you can get Visual Studio services only after the VSPackage has been sited. (Pour plus d’informations sur l’obtention de services, consultez Comment : obtenir un service.) Remplacer le Initialize() méthode de FirstPackage avec du code qui obtient le SVsUIShell de service, obtient le IVsUIShell interface et appelle son ShowMessageBox (méthode).(For more information about getting services, see How to: Get a service.) Replace the Initialize() method of FirstPackage with code that gets the SVsUIShell service, gets the IVsUIShell interface, and calls its ShowMessageBox method.

    protected override void Initialize()  
    {  
        base.Initialize();  
    
        IVsUIShell uiShell = (IVsUIShell)GetService(typeof(SVsUIShell));  
        Guid clsid = Guid.Empty;  
        int result;  
        Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(uiShell.ShowMessageBox(  
            0,  
            ref clsid,  
            "FirstPackage",  
             string.Format(CultureInfo.CurrentCulture, "Inside {0}.Initialize()", this.GetType().FullName),  
            string.Empty,  
            0,  
            OLEMSGBUTTON.OLEMSGBUTTON_OK,  
            OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST,  
            OLEMSGICON.OLEMSGICON_INFO,  
            0,  
            out result));  
    }  
    
  3. Générez le projet et commencez le débogage.Build the project and start debugging. L’instance expérimentale s’affiche.The experimental instance appears.

  4. Ouvrez une solution dans l’instance expérimentale.Open a solution in the experimental instance. Vous devez voir une boîte de message indiquant que premier Package à l’intérieur Initialize().You should see a message box that says First Package Inside Initialize().