Páginas de propiedades
Los usuarios pueden ver y cambiar las propiedades dependientes y independientes de la configuración del proyecto mediante páginas de propiedades. Un botón Páginas de propiedades está habilitado en la ventana Propiedades o en Explorador de soluciones barra de herramientas para objetos que proporcionan una vista de página de propiedades del objeto seleccionado. Las páginas de propiedades se crean mediante el entorno y están disponibles para soluciones y proyectos. Sin embargo, también pueden estar disponibles para los elementos de proyecto que usan propiedades dependientes de la configuración. Esta funcionalidad puede usarse cuando los archivos de un proyecto requieren una configuración diferente del modificador del compilador para compilar correctamente.
Usar páginas de propiedades
Si ya se muestra una página de propiedades y la selección cambia (por ejemplo, de una solución a un proyecto), la información mostrada en las páginas cambia para mostrar las propiedades de la nueva selección. Si no hay propiedades en el objeto que admiten páginas de propiedades, la página de propiedades está vacía.
Si se seleccionan varios objetos, la página de propiedades muestra la intersección de propiedades de todos los elementos seleccionados. Si el elemento seleccionado no contiene propiedades dependientes de la configuración y se hace clic en el botón Páginas de propiedades de la barra de herramientas de Explorador de soluciones, el foco cambia a la ventana Propiedades. Para obtener más información sobre la ventana Propiedades y la selección, vea Extender propiedades.
Si las propiedades se muestran para varios objetos y se cambia un valor en una página de propiedades, todos los valores de los objetos se establecen en el nuevo valor incluso si eran inicialmente diferentes y la página estaba en blanco cuando se mostraron las propiedades de un objeto individual.
Hay dos tipos generales de cuadros de diálogo ProjectProperty Pages disponibles en Visual Studio. En primer lugar, para los proyectos de Visual Basic, por ejemplo, las páginas de propiedades se muestran con un formato de campo, como se muestra en la captura de pantalla siguiente. En el segundo, que se muestra más adelante en esta sección, la página de propiedades hospeda una cuadrícula de propiedades similar a la que se encuentra en la ventana Propiedades.
Cuadro de diálogo Páginas de propiedades del proyecto con formato de campo y estructura de árbol
La estructura de árbol del cuadro de diálogo Páginas de propiedades no se compila con IVsHierarchy. El entorno, en función del nombre de nivel que le pasa y ISpecifyPropertyPages las IVsPropertyPage interfaces, lo compila.
Solo hay dos categorías de nivel superior disponibles en las páginas de propiedades de Visual Studio:
Propiedades comunes, que muestra información independiente de la configuración para el objeto u objetos seleccionados. Como resultado, cuando se selecciona una de las subcategorías Propiedades comunes, las opciones Configuración, Plataforma y Configuration Manager en la parte superior del cuadro de diálogo no están disponibles.
Propiedades de configuración, que contiene información dependiente de la configuración relacionada con los parámetros de depuración, optimización y compilación de la solución o el proyecto.
No puede crear categorías de nivel superior adicionales, pero puede optar por no mostrar una o la otra en la implementación de
IVsPropertyPage
. Si, por ejemplo, no tiene ninguna propiedad independiente de configuración que se muestre para un objeto, puede optar por no mostrar la categoría Propiedades comunes. Se muestran propiedades comunes siISpecifyPropertyPages
se implementa desde el objeto de exploración del elemento y las propiedades de configuración al implementarISpecifyPropertyPages
en el objeto de configuración (el objeto que implementaIVsCfg
interfacesIVsProjectCfg
relacionadas , y ).Cada categoría que se muestra en una categoría de nivel superior representa una página de propiedades independiente. Las entradas de categoría y subcategoría disponibles en el cuadro de diálogo están determinadas por la implementación de
ISpecifyPropertyPages
yIVsPropertyPage
.IDispatch
objetos para los elementos del contenedor de selección que tienen propiedades que se van a mostrar en las páginas de propiedades implementanISpecifyPropertyPages
para enumerar una lista de identificadores de clase. Los identificadores de clase se pasan como variables aISpecifyPropertyPages
y se usan para crear instancias de las páginas de propiedades. La lista de identificadores de clase también se pasa aIVsPropertyPage
para crear la estructura de árbol a la izquierda del cuadro de diálogo. A continuación, las páginas de propiedades devuelven información alIDispatch
objeto que implementaISpecifyPropertyPages
y rellena la información de cada página.Las propiedades del objeto browse se recuperan utilizando
IDispatch
para cada objeto del contenedor de selección.La implementación
Help::DisplayTopicFromF1Keyword
en VSPackage proporciona la funcionalidad del botón Ayuda.Para obtener más información, consulte
IDispatch
yISpecifyPropertyPages
en MSDN Library.El segundo tipo de páginas de propiedades que se muestran en los ejemplos hospeda una forma de la cuadrícula de propiedades, como se muestra en la captura de pantalla siguiente.
Cuadro de diálogo Páginas de propiedades con cuadrícula de propiedades
Las interfaces
IVSMDPropertyBrowser
yIVSMDPropertyGrid
(declaradas en vsmanaged.h) se usan para crear y rellenar la cuadrícula de propiedades dentro de un cuadro de diálogo o ventana.La arquitectura de los proyectos ha cambiado considerablemente a partir de versiones anteriores de Visual Studio. En concreto, ha cambiado la noción de qué proyecto está activo. En Visual Studio, no hay ningún concepto de proyecto activo. En entornos de desarrollo anteriores, el proyecto activo era el proyecto que compila e implementa comandos de forma predeterminada independientemente del contexto. Ahora, la solución controla y arbitra qué comandos de compilación e implementación se aplican a los proyectos.
Lo que anteriormente era un proyecto activo ahora se captura de una de estas tres maneras diferentes:
Proyecto de inicio
Puede especificar un proyecto o proyectos en la página de propiedades de la solución que se iniciará cuando el usuario presione F5 o seleccione Ejecutar en el menú Compilar. Esto funciona de forma similar al proyecto activo antiguo en el sentido de que su nombre se muestra en Explorador de soluciones con fuente en negrita.
Puede recuperar el proyecto de inicio como una propiedad en el modelo de automatización llamando a
DTE.Solution.SolutionBuild.StartupProjects
. En un VSPackage, se llama a los get_StartupProject métodos o get_StartupProject .IVsSolutionBuildManager
está disponible como servicio enQueryService
SID_SVsSolutionBuildManager. Para obtener más información, vea Project Configuration Object and Solution Configuration( Objeto de configuración del proyecto y Configuración de soluciones).Configuración de compilación de soluciones activas
Visual Studio tiene una configuración de solución activa, disponible en el modelo de automatización mediante la implementación
DTE.Solution.SolutionBuild.ActiveConfiguration
de . Una configuración de solución es una colección que contiene una configuración de proyecto para cada proyecto de la solución (cada proyecto puede tener varias configuraciones, en varias plataformas, con nombres diferentes). Para obtener más información sobre las páginas de propiedades de la solución, consulte Configuración de soluciones.Proyecto seleccionado actualmente
Implemente el GetCurrentSelection método para recuperar la jerarquía del proyecto y el elemento de proyecto o los elementos seleccionados. En DTE, usaría los
SelectedItems.SelectedItem.Project
métodos ySelectedItems.SelectedItem.ProjectItem
. Hay código de ejemplo bajo esos encabezados en los documentos principales de Visual Studio.