Partager via


Procédure pas - à - pas : Récupérer les propriétés de projet

Cette procédure pas - à - pas montre comment créer un VSPackage managé qui affiche les propriétés de projet dans une fenêtre Outil. Vous pouvez créer un VSPackage managé par exemple à l'aide de le modèle de projet de package Visual Studio. Utilisez l'automation avec le VSPackage obtenu pour afficher les propriétés d'un projet dans une fenêtre Outil. Suivez les étapes suivantes pour créer un VSPackage managé qui possède une fenêtre Outil puis à l'étendre à l'aide de l'automation :

  • créez le VSPackage managé.

  • Appelez le modèle Automation pour afficher les propriétés d'un projet dans une fenêtre Outil.

Composants requis

Pour exécuter cette procédure, vous devez installer Kit de développement logiciel Visual Studio 2010.

Notes

Pour plus d'informations sur le kit de développement Visual Studio, consultez Étendre la présentation de Visual Studio.Pour savoir comment télécharger le kit de développement Visual Studio, consultez Visual Studio Extensibility Developer Center sur le site Web MSDN.

Emplacements du modèle de projet de package Visual Studio

Le modèle de projet de package Visual Studio se trouve dans trois emplacements différents dans la boîte de dialogue Nouveau projet :

  1. Sous l'extensibilité Visual Basic. Le langage par défaut du projet est en Visual Basic.

  2. Sous l'extensibilité c#. Le langage par défaut du projet est c#.

  3. Sous d'autres projets contenus l'extensibilité. Le langage par défaut du projet est en C++.

pour créer un VSPackage managé

  1. Créez un projet d'un VSPackage nommé ProjectProps à l'aide de le modèle de projet de package de Visual Studio.

    Pour plus d'informations sur la création d'un VSPackage managé, consultez Procédure pas - à - pas : Créer une commande de menu à l'aide de le modèle de package Visual Studio.

    Dans la page de Sélectionner un langage de programmation , définissez le langage à Visual C# ou Visual Basic.

  2. Dans la page de Les informations de base d'un VSPackage , acceptez les valeurs par défaut.

  3. Dans la page de Sélectionnez les options d'un VSPackage , sélectionnez Commande de menu et fenêtre Outil.

  4. sur la page d' options de commande , tapez ma boîte à outils.

  5. sur la page d' options de fenêtre Outil , fenêtre Outil de ProjectProps de type.

  6. Cliquez sur Terminer.

    le modèle génère un projet managé nommé ProjectProps.

  7. Générez la solution et vérifiez qu'elle compile sans erreurs.

Pour appeler le modèle Automation pour afficher les propriétés d'un projet dans une fenêtre Outil

  1. Dans Explorateur de solutions, cliquez avec le bouton droit sur le nœud de ProjectProps puis cliquez sur Ajouter une référence.

  2. Dans la boîte de dialogue d' Ajouter une référence , sous l'onglet de .NET , double-cliquez sur EnvDTE puis cliquez sur OK.

    Cela génère une référence à l'espace de noms d' EnvDTE .

  3. ajoutez la ligne suivante en haut du fichier de VSPkg.cs ou de VSPkg.vb.

    Imports EnvDTE
    
    using EnvDTE;
    
  4. Ajoutez la ligne suivante au début du corps de la classe d' ProjectProps .

    Public Shared dte As EnvDTE.DTE
    
    public static EnvDTE.DTE dte;
    
  5. Ajoutez la ligne suivante au début du corps de la méthode d' ShowToolWindow .

    dte = CType(GetService(GetType(DTE)), DTE)
    
    dte = (DTE)GetService(typeof(DTE));
    

    Ce code utilise la méthode d' GetService pour obtenir un objet Automation DTE qui représente l'environnement de Visual Studio .

  6. Ouvrez MyControl.cs ou MyControl.vb dans le concepteur de Visual Studio et supprimez le bouton de cliquez sur-moi ! qui a été inséré par le modèle de projet de package de Visual Studio.

  7. ouvrez MyControl.cs ou MyControl.vb dans l'éditeur de code source. Ajoutez la ligne suivante au début du corps de la classe d' MyControl .

    Private treeView1 As TreeView
    
    private TreeView treeView1;
    
  8. Remplacez le corps du constructeur d' MyControl à l'aide de les lignes suivantes.

    Public Sub New()
        ' This call is required by the Windows.Forms Form Designer.
        InitializeComponent()
    
        ' 
        ' treeView1
        ' 
        Me.treeView1 = New System.Windows.Forms.TreeView()
        Me.SuspendLayout()
        Me.treeView1.Location = New System.Drawing.Point(20, 20)
        Dim project As EnvDTE.Project
        project = ProjectProps.dte.Solution.Projects.Item(1)
        Dim nodeNum As Integer = 0
        Me.treeView1.Name = "ProjectPropsTree"
        Me.treeView1.Nodes.Add(New System.Windows.Forms.TreeNode(project.Name & " Properties"))
        For Each [property] As EnvDTE.Property In project.Properties
            Dim node As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("Node" & nodeNum)
            node.Name = "Node" & nodeNum
            nodeNum = nodeNum + 1
            node.Text = [property].Name
            treeView1.Nodes(0).Nodes.Add(node)
        Next [property]
        Me.treeView1.Size = New System.Drawing.Size(250, 500)
        Me.treeView1.TabIndex = 1
        Me.Controls.Add(Me.treeView1)
        Me.ResumeLayout(False)
    End Sub
    
    public MyControl()
    {
        // This call is required by the Windows.Forms Form Designer.
        InitializeComponent();
    
        // 
        // treeView1
        // 
        this.treeView1 = new System.Windows.Forms.TreeView();
        this.SuspendLayout();
        this.treeView1.Location = new System.Drawing.Point(20, 20);
        EnvDTE.Project project;
        project = ProjectProps.dte.Solution.Projects.Item(1);
        int nodeNum = 0;
        this.treeView1.Name = "ProjectPropsTree";
        this.treeView1.Nodes.Add(new System.Windows.Forms.TreeNode(project.Name + 
                                                                   " Properties"));
        foreach (EnvDTE.Property property in project.Properties)
        {
            System.Windows.Forms.TreeNode node = 
                           new System.Windows.Forms.TreeNode("Node" + nodeNum);
            node.Name = "Node" + nodeNum++;
            node.Text = property.Name;
            treeView1.Nodes[0].Nodes.Add(node);
        }
        this.treeView1.Size = new System.Drawing.Size(250, 500);
        this.treeView1.TabIndex = 1;
        this.Controls.Add(this.treeView1);
        this.ResumeLayout(false);
    }
    

    Ce code utilise des objets Automation DTE pour récupérer les propriétés du projet et remplir dynamiquement un contrôle d'arborescence dans la fenêtre Outil à l'aide de les valeurs de nom de propriétés du projet.

  9. Générez le projet de ProjectProps .

  10. exécutez le projet de ProjectProps en appuyant sur F5, ou CTRL+F5 pour exécuter la génération expérimentale de Visual Studio .

    Notes

    deux versions de Visual Studio sont maintenant ouvertes.

  11. Dans Visual Studio Exp, créez ou ouvrez un projet.

  12. Dans le menu d' Afficher , pointez sur Autres fenêtres et cliquez sur fenêtre Outil de ProjectProps.

    Vous devez voir le contrôle d'arborescence de la fenêtre Outil avec les valeurs de nom de propriétés du projet.

Voir aussi

Tâches

Comment : créer et contrôler des fenêtres Outil

Concepts

kit de développement Visual Studio et automation

modèle Automation