Partager via


Procédure pas à pas : création d'un Assistant

Dans Visual Studio 2013, les compléments sont déconseillés. Nous vous recommandons d'effectuer la mise à niveau de vos compléments vers les extensions VSPackage. Pour plus d'informations sur la procédure de mise à niveau, consultez FAQ : conversion de compléments en extensions VSPackage.

Les Assistants, tels que l'Assistant Complément, sont des programmes qui accompagnent un utilisateur tout au long une série d'actions nécessaires pour remplir une tâche complexe, répétitive ou difficile. Par exemple, Windows utilise des Assistants pour connecter des ressources réseau ou des imprimantes.

Dans Visual Studio, les Assistants posent généralement une série de questions qui sollicitent une entrée de l'utilisateur, puis utilisent les résultats pour générer le code. Toutefois, les Assistants ne sont pas toujours dotés d'une interface utilisateur. Ils peuvent être programmés pour générer le code de manière sous-jacente et invisible.

Il existe trois types d'Assistant différents.

  • Assistants Nouveau projet : comme leur nom l'indique, ces Assistants permettent de générer un code nouveau destiné à un type de projet particulier, fournissant à l'utilisateur un point de départ pour qu'il ajoute son propre code. C'est le type d'Assistant le plus utilisé.

  • Assistants Ajouter un nouvel élément : ces Assistants permettent d'ajouter de nouveaux éléments, tels que des formulaires Web, fichiers texte, pages HTML, pages XML, etc., à un projet.

  • Assistants personnalisés — Ces Assistants ne sont pas appelés depuis une boîte de dialogue. Ils sont appelés directement à partir de différents compléments, macros ou autres types de code. Les Assistants peuvent, ou non, afficher une interface utilisateur. Dans les deux cas, ils génèrent un code. Ce type d'Assistant est le moins utilisé.

Quel que soit leur type, les Assistants présentent certaines caractéristiques communes.

  • Ce sont des objets .NET qui implémentent l'interface IDTWizard et présentent une méthode associée, Execute, qui contient le code que vous souhaitez voir exécuter par l'Assistant.

  • Ils utilisent tous un fichier .vsz pour s'afficher eux-mêmes dans Visual Studio.

  • Tous, ils génèrent du code ou effectuent quelque autre tâche.

Vous pouvez personnaliser l'aspect des éléments présents dans les Assistants que vous créez. Les Assistants se composent d'une ou de plusieurs fenêtres, ou pages. Les pages peuvent contenir une image descriptive, notamment dans la partie supérieure ou gauche de la page, une étiquette de description, des instructions et une zone dans laquelle sont placés les contrôles de navigation, tels que Suivant et Précédent.

Le processus de création d'Assistants en Visual C++ est un peu différent du processus standard de Visual Studio. Pour obtenir des informations supplémentaires sur la manière de créer des Assistants ciblés pour Visual C++, consultez Conception d'un Assistant et Création d'un Assistant personnalisé.

Notes

Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes.Ces éléments dépendent de l'édition de Visual Studio dont vous disposez et des paramètres que vous utilisez.Pour plus d'informations, consultez Paramètres Visual Studio.

Exemple d'un Assistant de base

Assistant Complément de Visual Studio

Cette image montre un volet de l'Assistant Complément, un Assistant de type Nouveau projet qui vous guide à travers une série d'étapes pour créer un complément. Vous pouvez personnaliser l'apparence de vos Assistants, mais l'Assistant Complément est un bon exemple du style d'un type d'Assistant standard. Une fois achevés, les Assistants deviennent des modèles disponibles dans la boîte de dialogue Nouveau projet ou Ajouter un nouvel élément.

Les éléments suivants montrent comment créer un Assistant de base et, le cas échéant, lui attribuer une icône personnalisée.

Pour créer un Assistant de base en Visual Basic et Visual C#

  1. Exécutez Visual Studio en tant qu'administrateur. L'enregistrement de l'Assistant requiert la mise à jour du Registre, donc il a besoin de ce privilège.

  2. Créez un projet Bibliothèque de classes nommé MyNewWizard.

  3. Ajoutez au projet des références à EnvDTE et EnvDTE80.

    Pour cela, cliquez avec le bouton droit sur le projet et cliquez sur Ajouter, Référence. Dans l'onglet .NET de la boîte de dialogue Référence, cliquez sur EnvDTE et EnvDTE80, puis sur OK.

Dans le module de classe, incluez les références à EnvDTE et EnvDTE80, et implémentez l'interface IDTWizard. Pour cet exemple Visual C#, vous devez également ajouter une référence à System.Windows.Forms et System.Runtime.InteropServices.

Imports EnvDTE 
Imports EnvDTE80
Public Class Class1
    Implements IDTWizard
using System;
using System.Collections.Generic;
using System.Text;
using EnvDTE; 
using EnvDTE80; 
using System. Windows.Forms;

using System.Runtime.InteropServices;

namespace MyNewWizard
{

[ComVisible(true)]

[Guid("20184B81-7C38-4E02-A1E3-8D564EEC2D25"),

ProgId("MyNewWizard.Class1")]

    public class Class1 : IDTWizard
    {
    }
}

Lorsque vous ajoutez l'instruction Implements en Visual Basic, positionnez le curseur en fin de ligne et appuyez sur Entrée pour créer automatiquement une procédure de méthode Execute. Toutefois, en Visual C#, vous devez ajouter la procédure Execute manuellement :

public class Class1 : IDTWizard
    {
    public void Execute(object Application,  
        int hwndOwner, ref object[] contextParams,  
        ref object[] customParams,  
        ref EnvDTE.wizardResult retval)
  1. Ajoutez le code à exécuter par l'Assistant à la procédure Execute. Pour cet exemple, nous ajouterons juste un simple message.

    Il comporte les deux éléments suivants :

    Imports EnvDTE
    Imports EnvDTE80
    
    Public Class Class1
        Implements IDTWizard
    
        Public Sub Execute(ByVal Application As Object, ByVal _
        hwndOwner As Integer, ByRef ContextParams() As Object, ByRef _
        CustomParams() As Object, ByRef retval As EnvDTE.wizardResult) _
        Implements EnvDTE.IDTWizard.Execute
            MsgBox("The wizard is now running.")
        End Sub
    End Class 
    
    using System.Text;
    using EnvDTE;
    using EnvDTE80;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    
    namespace MyNewWizardCS
    {
        public class Class1 : IDTWizard
        {
    
        public void Execute(object Application, 
            int hwndOwner, ref object[] contextParams, 
            ref object[] customParams, 
            ref EnvDTE.wizardResult retval)
        {
            MessageBox.Show("The wizard is now running.");
        }
    }
    
    }
    

    La procédure Execute est appelée lorsque l'Assistant est démarré.

  2. Cliquez avec le bouton droit sur votre projet dans l'Explorateur de solutions, cliquez sur Propriétés pour ouvrir la page Propriétés du projet, cliquez ensuite sur l'onglet Générer, puis activez la case à cocher Inscrire pour COM Interop en bas de page.

  3. Dans le fichier AssemblyInfo.cs, recherchez l'attribut ComVisible et définissez-le sur true.

  4. Générez le projet pour créer la bibliothèque de classes (.dll) en cliquant sur Générer la solution dans le menu Générer.

  5. Créez un fichier texte .vsz pour l'Assistant nommé MonNouvelAssistant.vsz.

    Pour ce faire, effectuez une copie d'un fichier .vsz existant, par exemple l'un des fichiers situés dans <Visual Studio Install Directory>\VC#\CSharpProjectItems\Windows Forms, puis renommez-le « MyNewWizard.vsz ».

    Un fichier .vsz est un fichier texte qui permet à Visual Studio d'identifier l'Assistant et de l'afficher dans la boîte de dialogue Nouveau projet ou Ajouter un nouvel élément. La valeur du paramètre Wizard doit être l'identificateur programmatique, ou progID (Project.Classname) du projet ou le GUID. Pour plus d'informations, consultez Configuration des fichiers .VsZ pour démarrer des Assistants.

    Notes

    Vous avez également la possibilité facultative de créer un fichier VSDir pour l'Assistant.Il contient les informations qui s'affichent en tant que description de l'Assistant dans la boîte de dialogue Nouveau projet ou Nouveau fichier.Il vous permet également de spécifier une icône et de réorganiser sa position dans la liste.Pour plus d'informations, consultez Ajout d'Assistants aux boîtes de dialogue Ajouter un élément et Nouveau projet à l'aide de fichiers .Vsdir.

  6. Remplacez le contenu de MyNewWizard.vsz par ce qui suit :

    VSWizard 7.0
    Wizard=MyNewWizard.Class1
    Param=First Item
    Param=Second Item
    
  7. Placez le nouveau fichier .vsz dans le répertoire où vous souhaitez que l'Assistant apparaisse.

    Dans cet exemple, nous voulons que l'Assistant apparaisse dans la boîte de dialogue Ajouter un nouvel élément pour les projets Visual Basic. Par conséquent, enregistrez le fichier .vsz dans le répertoire suivant : <Visual Studio Install Directory>\VB\VBProjectItems.

  8. Quittez Visual Studio, puis redémarrez-le.

    Visual Studio est ainsi contraint de lire le nouveau fichier .vsz.

  9. Créez un projet Visual Basic, tel qu'un projet d'application Windows.

  10. Cliquez avec le bouton droit sur le projet, pointez sur Ajouter, puis cliquez sur Nouvel élément.

    Votre nouvel Assistant (MonNouvelAssistant) s'affiche dans la boîte de dialogue Ajouter un nouvel élément.

  11. Cliquez sur l'Assistant, puis sur le bouton Ajouter.

    Le message "L'Assistant est en cours d'exécution." s'affiche.

Pour afficher une icône personnalisée pour le nouvel Assistant

  • Placez un fichier icône ayant le même nom de fichier de base que le fichier .dll, mais l'extension .ico, dans le même répertoire que le fichier de l'Assistant.

    Par exemple, si l'Assistant s'appelle MonAssistant.dll, nommez le fichier icône MonAssistant.ico.

    ou

  • Si vous avez créé un fichier VSDir, spécifiez-y un chemin d'accès au fichier icône (.ico).

Voir aussi

Tâches

Comment : créer un complément

Référence

IDTWizard

Concepts

Graphique Modèle d'objet Automation

Ajout d'Assistants aux boîtes de dialogue Ajouter un élément et Nouveau projet à l'aide de fichiers .Vsdir

Configuration des fichiers .VsZ pour démarrer des Assistants

Autres ressources

Création de compléments et d'Assistants

Commandes et commutateurs Visual Studio