Compartir a través de


tutorial: Recuperar propiedades de proyecto

Este tutorial muestra cómo crear un VSPackage administrado que muestra las propiedades del proyecto en una ventana de herramientas. Puede crear un VSPackage administrado ejemplo utilizando la plantilla de proyecto paquete de Visual Studio. Utilice la automatización con el Paquete resultante para mostrar las propiedades del proyecto en una ventana de herramientas. Siga estos pasos para crear un VSPackage administrado que tiene una ventana de herramientas y después para extenderlo mediante automatización:

  • Cree el paquete VSPackage administrado.

  • Llame al modelo de automatización para mostrar las propiedades del proyecto en una ventana de herramientas.

Requisitos previos

Para completar este tutorial, debe instalar Visual Studio 2010 SDK.

Nota

Para obtener más información sobre el SDK de Visual Studio, vea Información general de Visual Studio que extiende.Para averiguar cómo descargar el SDK de Visual Studio, vea Centro para desarrolladores de extensibilidad de Visual Studio en el sitio web de MSDN.

Ubicaciones de la plantilla de proyecto paquete de Visual Studio

La plantilla de proyecto paquete de Visual Studio se puede encontrar en tres ubicaciones diferentes en el diálogo de Nuevo proyecto :

  1. bajo extensibilidad de Visual Basic. El idioma predeterminado del proyecto es Visual Basic.

  2. bajo extensibilidad de C#. El lenguaje predeterminado del proyecto es C#.

  3. En otra extensibilidad de los tipos de proyecto. El lenguaje predeterminado del proyecto es C++.

para crear un VSPackage administrado

  1. Cree un proyecto denominado ProjectProps de VSPackage mediante la plantilla de proyecto paquete de Visual Studio.

    Para obtener más información sobre cómo crear un VSPackage administrado, vea tutorial: Crear un comando de menú mediante la plantilla de paquete de Visual Studio.

    En la página de Seleccione un lenguaje de programación , establezca el idioma a Visual C# o a Visual Basic.

  2. en la página de información básica de VSPackage , acepte los valores predeterminados.

  3. En la página de Opciones de selección de VSPackage , seleccione Comando de menú y ventana de herramientas.

  4. en la página de opciones de comando , escriba mi cuadro de herramientas.

  5. En la página de opciones de la ventana de herramientas , ventana de herramientas tipo de ProjectProps.

  6. Haga clic en Finalizar.

    la plantilla genera un proyecto administrado denominado ProjectProps.

  7. Compile la solución y compruebe que se compila sin errores.

Para llamar al modelo de automatización para mostrar las propiedades del proyecto en una ventana de herramientas

  1. En Explorador de soluciones, haga clic con el botón secundario en el nodo de ProjectProps y haga clic en Agregar referencia.

  2. En el cuadro de diálogo de Agregar referencia , en la pestaña de .NET , haga doble clic en EnvDTE y haga clic en Aceptar.

    Esto establece una referencia al espacio de nombres EnvDTE .

  3. Agregue la línea siguiente en la parte superior del archivo de VSPkg.cs o de VSPkg.vb.

    Imports EnvDTE
    
    using EnvDTE;
    
  4. Agregue la línea siguiente en la parte superior del cuerpo de la clase de ProjectProps .

    Public Shared dte As EnvDTE.DTE
    
    public static EnvDTE.DTE dte;
    
  5. Agregue la línea siguiente en la parte superior del cuerpo del método de ShowToolWindow .

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

    Este código utiliza el método de GetService para obtener un objeto de automatización de DTE que representa el entorno de Visual Studio .

  6. Abra MyControl.cs o MyControl.vb en el diseñador de Visual Studio y quita el botón de El hagame clic! que ha insertado por la plantilla de proyecto paquete de Visual Studio.

  7. MyControl.cs abierto o MyControl.vb en el editor de código fuente. Agregue la línea siguiente en la parte superior del cuerpo de la clase de MyControl .

    Private treeView1 As TreeView
    
    private TreeView treeView1;
    
  8. Reemplace el cuerpo del constructor de MyControl utilizando las líneas siguientes.

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

    Este código utiliza objetos de automatización DTE para recuperar las propiedades del proyecto y rellenar dinámicamente el control de árbol de la ventana de herramientas mediante los valores de nombre de propiedades del proyecto.

  9. compile el proyecto de ProjectProps .

  10. Ejecute el proyecto de ProjectProps presionando F5, o CTRL+F5 para ejecutar la compilación experimental de Visual Studio .

    Nota

    Dos versiones de Visual Studio se abrirán.

  11. En Visual Studio Exp, cree o abra un proyecto.

  12. En el menú de Ver , elija Otras ventanas y haga clic en ventana de herramientas de ProjectProps.

    Debería ver el control de árbol de la ventana de herramientas junto con los valores de nombre de propiedades del proyecto.

Vea también

Tareas

Cómo: Crear y controlar ventanas de herramientas

Conceptos

Visual Studio SDK y automatización

modelo de automatización