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

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'Assistants.

  • Assistant Nouveau projet - Comme leur nom l'indique, ces Assistants sont utilisés pour générer un code nouveau destiné à un type de projet particulier, fournissant à l'utilisateur un point de départ depuis lequel il ajoutera son propre code. C'est le type d'Assistant le plus utilisé.

  • Assistants Ajouter un nouvel élément - Ces Assistants sont utilisés pour ajouter de nouveaux éléments, tels que formulaires Web, fichiers texte, pages HTML ou pages XML, aux projets existants.

  • 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é.

Indépendamment de leur type, les Assistants présentent des 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 création des Assistants ciblés pour Visual C++, consultez Conception d'un Assistant et Création d'un Assistant personnalisé.

Notes

Les boîtes de dialogue et les commandes de menu qui s'affichent peuvent être différentes de celles qui sont décrites dans l'aide, en fonction de vos paramètres actifs ou de l'édition utilisée. Ces procédures ont été développées avec les paramètres de développement généraux actifs. Pour modifier vos paramètres, sélectionnez Importer et Exporter Paramètres dans le menu Outils. Pour plus d'informations, consultez Utilisation des paramètres.

Exemple d'un Assistant de base

Assistant Complément de Visual Studio

Cette image montre un panneau de l'Assistant Complément, un type d'Assistant Nouveau projet qui vous guide à travers une série d'étapes menant à la création d'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 les boîtes 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 une référence. Dans l'onglet .NET de la boîte de dialogue Ajouter une référence, cliquez sur EnvDTE et EnvDTE80 puis cliquez 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 dll de bibliothèque de classes 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 <Répertoire d'installation de Visual Studio>\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 les boîtes de dialogue Nouveau projet et 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 les boîtes de dialogue Ajouter Nouveau projet et Ajouter 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 s'affiche 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 : <Répertoire d'installation de Visual Studio>\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 votre projet, pointez sur Ajouter un élément, 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

Commandes et commutateurs Visual Studio

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