Partage via


Créer une extension avec une commande de menu

Cette procédure pas à pas montre comment créer une extension avec une commande de menu qui lance le Bloc-notes.

Créer une commande de menu

  1. Créez un projet VSIX nommé FirstMenuCommand. Vous trouverez le modèle de projet VSIX dans la boîte de dialogue Nouveau projet en recherchant « vsix ».

  2. Lorsque le projet s’ouvre, ajoutez un modèle d’élément de commande personnalisé nommé FirstCommand. Dans l’Explorateur de solutions , cliquez avec le bouton droit sur le nœud du projet, puis sélectionnez Ajouter>nouvel élément. Dans la boîte de dialogue Ajouter un nouvel élément, accédez à éléments C#> d’extensibilité, puis sélectionnez commande. Dans le champ Nom en bas de la fenêtre, remplacez le nom du fichier de commande par FirstCommand.cs.

  3. Compilez le projet et démarrez le débogage.

    L’instance expérimentale de Visual Studio s’affiche. Pour plus d’informations sur l’instance expérimentale, consultez L’instance expérimentale.

  4. Dans l’instance expérimentale, ouvrez la fenêtre Extensions>Gérer les extensions. Vous devriez voir l’extension FirstMenuCommand ici. (Si vous ouvrez Gérer les extensions dans votre instance de travail de Visual Studio, vous ne verrez pas FirstMenuCommand).

Accédez maintenant au menu outils dans l’instance expérimentale. Vous devez voir la commande Invoke FirstCommand. À ce stade, la commande affiche une boîte de message qui indique FirstCommand Inside FirstMenuCommand.FirstCommand.MenuItemCallback(). Nous verrons comment démarrer le Bloc-notes à partir de cette commande dans la section suivante.

Modifier le gestionnaire de commandes de menu

Nous allons maintenant mettre à jour le gestionnaire de commandes pour démarrer le Bloc-notes.

  1. Arrêtez le débogage et revenez à votre instance de travail de Visual Studio. Ouvrez le fichier FirstCommand.cs et ajoutez l'instruction "using" suivante :

    using System.Diagnostics;
    
  2. Recherchez le constructeur privé FirstCommand. C’est là que la commande est connectée au service de commandes et que le gestionnaire de commandes est spécifié. Remplacez le nom du gestionnaire de commandes par StartNotepad, comme suit :

    private FirstCommand(AsyncPackage package, OleMenuCommandService commandService)
    {
        this.package = package ?? throw new ArgumentNullException(nameof(package));
        commandService = commandService ?? throw new ArgumentNullException(nameof(commandService));
    
        CommandID menuCommandID = new CommandID(CommandSet, CommandId);
        // Change to StartNotepad handler.
        MenuCommand menuItem = new MenuCommand(this.StartNotepad, menuCommandID);
        commandService.AddCommand(menuItem);
    }
    
  3. Supprimez la méthode Execute et ajoutez une méthode StartNotepad, qui démarre simplement le Bloc-notes :

    private void StartNotepad(object sender, EventArgs e)
    {
        ThreadHelper.ThrowIfNotOnUIThread();
    
        Process proc = new Process();
        proc.StartInfo.FileName = "notepad.exe";
        proc.Start();
    }
    
  4. Essayez-le maintenant. Lorsque vous démarrez le débogage du projet et cliquez sur Tools>Invoke FirstCommand, vous devriez voir une instance du Bloc-notes apparaître.

    Vous pouvez utiliser une instance de la classe Process pour exécuter n’importe quel exécutable, pas seulement le Bloc-notes. Essayez-le avec calc.exe, par exemple.

Nettoyer l’environnement expérimental

Si vous développez plusieurs extensions ou que vous explorez simplement les résultats avec différentes versions de votre code d’extension, votre environnement expérimental peut cesser de fonctionner comme il le doit. Dans ce cas, vous devez exécuter le script de réinitialisation. Elle est appelée Réinitialiser l’instance expérimentale Visual Studio, et elle est fournie dans le cadre du Kit de développement logiciel (SDK) Visual Studio. Ce script supprime toutes les références à vos extensions de l’environnement expérimental, ce qui vous permet de commencer à partir de zéro.

Vous pouvez accéder à ce script de deux façons :

  1. À partir du bureau, recherchez Réinitialiser l’Instance Expérimentale Visual Studio.

  2. À partir de la ligne de commande, exécutez ce qui suit :

    <VSSDK installation>\VisualStudioIntegration\Tools\Bin\CreateExpInstance.exe /Reset /VSInstance=<version> /RootSuffix=Exp && PAUSE
    
    

Déployer votre extension

Maintenant que votre extension d'outil fonctionne comme vous le souhaitez, il est temps d'envisager de le partager avec vos amis et vos collègues. C’est facile, tant qu’ils ont installé Visual Studio 2015. Il vous suffit de les envoyer le fichier .vsix que vous avez créé. (Veillez à la générer en mode Release.)

Vous trouverez le fichier .vsix pour cette extension dans le répertoire bin FirstMenuCommand. Plus précisément, en supposant que vous avez créé la configuration Release, elle se trouve dans :

<répertoire de code>\FirstMenuCommand\FirstMenuCommand\bin\Release\FirstMenuCommand.vsix

Pour installer l’extension, votre ami doit fermer toutes les instances ouvertes de Visual Studio, puis double-cliquez sur le fichier .vsix, qui affiche le programme d’installation VSIX. Les fichiers sont copiés dans le répertoire %LocalAppData%\Microsoft\VisualStudio<version>\Extensions.

Lorsque votre ami mentionne à nouveau Visual Studio, il trouvera l’extension FirstMenuCommand dans Outils>Extensions et mises à jour. Ils peuvent également accéder à extensions et mises à jour pour désinstaller ou désactiver l’extension.

Étapes suivantes

Cette procédure pas à pas vous a montré une petite partie de ce que vous pouvez faire avec une extension Visual Studio. Voici une courte liste d’autres choses (raisonnablement faciles) que vous pouvez faire avec les extensions Visual Studio :

  1. Vous pouvez effectuer de nombreuses opérations supplémentaires avec une commande de menu simple :

    1. Ajouter votre propre icône : Ajouter des icônes aux commandes de menu

    2. Modifiez le texte de la commande de menu : Modifier le texte d’une commande de menu

    3. Ajouter un raccourci de menu à une commande : lier les raccourcis clavier aux éléments de menu

  2. Ajoutez différents types de commandes, menus et barres d’outils : Étendre les menus et les commandes

  3. Ajoutez des fenêtres d’outils et étendez les fenêtres d’outils intégrées de Visual Studio : Étendre et personnaliser les fenêtres d’outils

  4. Ajouter IntelliSense, des suggestions de code et d’autres fonctionnalités aux éditeurs de code existants : étendre l’éditeur et les services linguistiques

  5. Ajouter des pages Options et propriétés et des paramètres utilisateur à votre extension : Étendre les propriétés et la fenêtre Propriétés et Étendre les paramètres utilisateur et les options

    D’autres types d’extensions nécessitent un peu plus de travail, comme la création d’un nouveau type de projet (Étendre des projets), ou la création d’un nouveau type d’éditeur (Créer des éditeurs et des concepteurs personnalisés).