Freigeben über


Abrufen von Projekteigenschaften

In dieser exemplarischen Vorgehensweise wird gezeigt, wie Projekteigenschaften in einem Toolfenster angezeigt werden.

So erstellen Sie ein VSIX-Projekt und fügen ein Toolfenster hinzu

  1. Jede Visual Studio-Erweiterung beginnt mit einem VSIX-Bereitstellungsprojekt, das die Erweiterungsressourcen enthält. Erstellen Sie ein Visual Studio VSIX-Projekt mit dem Namen ProjectPropertiesExtension. Sie finden die VSIX-Projektvorlage im Dialogfeld "Neues Projekt ", indem Sie nach "vsix" suchen.

  2. Fügen Sie ein Toolfenster hinzu, indem Sie eine Elementvorlage für ein benutzerdefiniertes Toolfenster mit dem Namen ProjectPropertiesToolWindowhinzufügen. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, und wählen Sie Hinzufügen>Neues Element aus. Wechseln Sie im Dialogfeld "Neues Element hinzufügen" zur Erweiterbarkeit von Visual C#-Elementen>, und wählen Sie "Benutzerdefiniertes Toolfenster" aus. Ändern Sie im Feld "Name " unten im Dialogfeld den Dateinamen in ProjectPropertiesToolWindow.cs. Weitere Informationen zum Erstellen eines benutzerdefinierten Toolfensters finden Sie unter Erstellen einer Erweiterung mit einem Toolfenster.

  3. Erstellen Sie die Projektmappe, und stellen Sie sicher, dass sie fehlerfrei kompiliert wird.

So zeigen Sie Projekteigenschaften in einem Toolfenster an

  1. Fügen Sie in der Datei "ProjectPropertiesToolWindowCommand.cs" die folgenden Direktiven hinzu.

    using EnvDTE;
    using System.Windows.Controls;
    
    
  2. Entfernen Sie in ProjectPropertiesToolWindowControl.xaml die vorhandene Schaltfläche, und fügen Sie eine TreeView aus der Toolbox hinzu. Sie können auch den Click-Ereignishandler aus der Datei ProjectPropertiesToolWindowControl.xaml.cs entfernen.

  3. Verwenden Sie in ProjectPropertiesToolWindowCommand.cs die ShowToolWindow() Methode, um das Projekt zu öffnen und dessen Eigenschaften zu lesen, und fügen Sie dann die Eigenschaften zur TreeView hinzu. Der Code für ShowToolWindow sollte wie folgt aussehen:

    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. Erstellen Sie das Projekt, und starten Sie das Debugging. Die experimentelle Instanz sollte angezeigt werden.

  5. Öffnen Sie in der experimentellen Instanz ein Projekt.

  6. Klicken Sie im Fenster "Andere Windows-Ansicht>" auf "ProjectPropertiesToolWindow".

Das Struktursteuerelement sollte im Toolfenster zusammen mit dem Namen des ersten Projekts und aller zugehörigen Projekteigenschaften angezeigt werden.