Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

Walkthrough: Retrieving Project Properties

This walkthrough shows how to create a managed VSPackage that displays project properties in a tool window. You can create a sample managed VSPackage by using the Visual Studio Package project template. Use automation with the resulting VSPackage to display project properties in a tool window. Follow these steps to create a managed VSPackage that has a tool window and then extend it by using automation:

  • Create the managed VSPackage.

  • Call the automation model to display project properties in a tool window.

To follow this walkthrough, you must install the Visual Studio 2013 SDK. For more information, see Visual Studio Software Development Kit (SDK).

The Visual Studio Package project template can be found in three different locations in the New Project dialog:

  1. Under Visual Basic Extensibility. The default language of the project is Visual Basic.

  2. Under C# Extensibility. The default language of the project is C#.

  3. Under Other Project Types Extensibility. The default language of the project is C++.

To create a managed VSPackage

  1. Create a VSPackage project named ProjectProps by using the Visual Studio Package project template.

    For more information about how to create a managed VSPackage, see Walkthrough: Creating a Menu Command By Using the Visual Studio Package Template.

    On the Select a Programming Language page, set the language to Visual C# or Visual Basic.

  2. On the Basic VSPackage Information page, accept the default values.

  3. On the Select VSPackage Options page, select Menu Command and Tool Window.

  4. On the Command Options page, type My Toolbox.

  5. On the Tool Window Options page, type ProjectProps Tool Window.

  6. Click Finish.

    The template generates a managed project named ProjectProps.

  7. Build the solution and verify that it compiles without errors.

To call the automation model to display project properties in a tool window

  1. In Solution Explorer, right-click the ProjectProps node and then click Add, Reference.

  2. In the Reference dialog box, on the .NET tab, double-click EnvDTE and then click OK.

    This establishes a reference to the EnvDTE namespace.

  3. Add the following line at the top of the VSPkg.cs or VSPkg.vb file.

    using EnvDTE;
    
  4. Add the following line at the top of the body of the ProjectProps class.

    public static EnvDTE.DTE dte;
    
  5. Add the following line at the top of the body of the ShowToolWindow method.

    dte = (DTE)GetService(typeof(DTE));
    

    This code uses GetService method to get a DTE automation object that represents the Visual Studio environment.

  6. Open MyControl.cs or MyControl.vb in the Visual Studio designer and remove the Click Me! button that was inserted by the Visual Studio Package project template.

  7. Open MyControl.cs or MyControl.vb in the source code editor. Add the following line at the top of the body of the MyControl class.

    private TreeView treeView1;
    
  8. Replace the body of the MyControl constructor by using the following lines.

    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);
    }
    

    This code uses DTE automation objects to retrieve the project properties and to dynamically populate the tree control in the tool window by using the project properties name values.

  9. Build the ProjectProps project.

  10. Run the ProjectProps project by pressing F5, or CTRL+F5 to run the Visual Studio experimental build.

    Note Note

    Two versions of Visual Studio are now open.

  11. In Visual Studio Exp, create or open any project.

  12. On the View menu, point to Other Windows and click ProjectProps Tool Window.

    You should see the tree control in the tool window together with the project properties name values.

Show:
© 2015 Microsoft