Obtenir les propriétés du projet

Cette procédure pas à pas montre comment afficher les propriétés du projet dans une fenêtre d’outil.

Pour créer un projet VSIX et ajouter une fenêtre d’outil

  1. Chaque extension Visual Studio commence par un projet de déploiement VSIX, qui contiendra les ressources d’extension. Créez un projet VSIX Visual Studio nommé ProjectPropertiesExtension. Vous trouverez le modèle de projet VSIX dans la boîte de dialogue Nouveau projet en recherchant « vsix ».

  2. Ajoutez une fenêtre d’outil en ajoutant un modèle d’élément de fenêtre d’outil personnalisé nommé ProjectPropertiesToolWindow. Dans le Explorateur de solutions, cliquez avec le bouton droit sur le nœud du projet, puis sélectionnez Ajouter>un nouvel élément. Dans la boîte de dialogue Ajouter un nouvel élément, accédez à l’extensibilité des éléments>Visual C# et sélectionnez Fenêtre Outil personnalisée. Dans le champ Nom en bas de la boîte de dialogue, remplacez le nom ProjectPropertiesToolWindow.csdu fichier par . Pour plus d’informations sur la création d’une fenêtre d’outil personnalisée, consultez Créer une extension avec une fenêtre d’outil.

  3. Générez la solution et vérifiez qu’elle est compilée sans erreur.

Pour afficher les propriétés du projet dans une fenêtre d’outil

  1. Dans le fichier ProjectPropertiesToolWindowCommand.cs, ajoutez les directives suivantes à l’aide.

    using EnvDTE;
    using System.Windows.Controls;
    
    
  2. Dans ProjectPropertiesToolWindowControl.xaml, supprimez le bouton existant et ajoutez un TreeView à partir de la boîte à outils. Vous pouvez également supprimer le gestionnaire d’événements Click du fichier ProjectPropertiesToolWindowControl.xaml.cs .

  3. Dans ProjectPropertiesToolWindowCommand.cs, utilisez la ShowToolWindow() méthode pour ouvrir le projet et lire ses propriétés, puis ajoutez les propriétés à TreeView. Le code de ShowToolWindow doit ressembler à ce qui suit :

    private void ShowToolWindow(object sender, EventArgs e)
    {
        ToolWindowPane window = this.package.FindToolWindow(typeof(ProjectPropertiesToolWindow), 0, true);
        if ((null == window) || (null == window.Frame))
        {
            throw new NotSupportedException("Cannot create window.");
        }
        IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame;
        Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.Show());
    
        // Get the tree view and populate it if there is a project open.
        ProjectPropertiesToolWindowControl control = (ProjectPropertiesToolWindowControl)window.Content;
        TreeView treeView = control.treeView;
    
        // Reset the TreeView to 0 items.
        treeView.Items.Clear();
    
        DTE dte = (DTE)this.ServiceProvider.GetService(typeof(DTE));
        Projects projects = dte.Solution.Projects;
        if (projects.Count == 0)   // no project is open
        {
            TreeViewItem item = new TreeViewItem();
            item.Name = "Projects";
            item.ItemsSource = new string[]{ "no projects are open." };
            item.IsExpanded = true;
            treeView.Items.Add(item);
            return;
        }
    
        Project project = projects.Item(1);
        TreeViewItem item1 = new TreeViewItem();
        item1.Header = project.Name + "Properties";
        treeView.Items.Add(item1);
    
        foreach (Property property in project.Properties)
        {
            TreeViewItem item = new TreeViewItem();
            item.ItemsSource = new string[] { property.Name };
            item.IsExpanded = true;
            treeView.Items.Add(item);
        }
    }
    
  4. Générez le projet et commencez le débogage. L’instance expérimentale doit apparaître.

  5. Dans l'instance expérimentale, ouvrez un projet.

  6. Dans l’affichage >d’autres fenêtres, cliquez sur ProjectPropertiesToolWindow.

Vous devez voir le contrôle d’arborescence dans la fenêtre outil, ainsi que le nom du premier projet et de toutes ses propriétés de projet.