Création d’une Extension avec un VSPackageCreating an Extension with a VSPackage

Cette procédure pas à pas 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 Shell d’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 une 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 ultérieurement.You can also install the VS SDK later on. Pour plus d’informations, consultez l’installation de Visual Studio SDK.For more information, see Installing the Visual Studio SDK.

Création d’un VSPackageCreating 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. Lorsque le projet s’ouvre, ajouter 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 / 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 au 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 VSPackageLoading the VSPackage

À ce stade l’extension ne charge pas, car il n’a rien de ce que vous oblige à 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 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 des 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 fichier FirstPackage.cs.Open the FirstPackage.cs file. Recherchez la déclaration de la classe FirstPackage.Look for the declaration of the FirstPackage class. Remplacer 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. Vous allez 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 la méthode Initialize() le VSPackage pour ce faire, car vous pouvez obtenir les services de Visual Studio uniquement après que le VSPackage a été installé.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 la méthode Initialize() 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().