Introducción a las opciones de configuración

Los proyectos de Visual Studio pueden admitir varias configuraciones que se pueden compilar, depurar, ejecutar o implementar. Una configuración es un tipo de compilación descrito con un conjunto con nombre de propiedades, normalmente modificadores del compilador y ubicaciones de archivos. De forma predeterminada, las nuevas soluciones contienen dos configuraciones, Depuración y Versión. Estas configuraciones se pueden aplicar mediante su configuración predeterminada o modificarse para cumplir los requisitos específicos de la solución o del proyecto. Algunos paquetes se pueden compilar de dos maneras: como un editor activeX o como un componente local. Sin embargo, los proyectos no necesitan admitir varias configuraciones. Si solo hay una configuración disponible, esa configuración se asigna a todas las configuraciones de la solución.

Las configuraciones normalmente constan de dos partes: el nombre de configuración (como Depuración o Versión) y la configuración de la plataforma. El nombre de la plataforma de una configuración identifica el entorno que tiene como destino la configuración, como un conjunto de API o una plataforma de sistema operativo. Los usuarios de Visual Studio no pueden crear una plataforma; deben elegir entre las selecciones que permite un vsPackage de proyecto. Cuando un usuario instala un VSPackage, la plataforma de entrega creada durante el desarrollo del paquete puede mostrar cualquier nombre de plataforma deseado en función de cualquier criterio establecido por el creador del paquete. A continuación, el usuario puede seleccionar en la lista de plataformas disponibles a través de VSPackage cuando se crean instancias de las páginas de propiedades.

Los nombres de plataforma son opcionales, ya que no todos los proyectos admiten el concepto de plataformas. Cuando una configuración carece de un nombre de plataforma, la cadena N/A se muestra en la interfaz de usuario.

Cada solución tiene su propio conjunto de configuraciones, solo uno de los cuales puede estar activo a la vez. Una configuración de solución es un conjunto de no más de una configuración de cada proyecto. La información "no más que" se debe a la opción de excluir un proyecto de una configuración de solución. Los usuarios pueden crear sus propias configuraciones de solución personalizadas.

En la tabla siguiente se muestran las configuraciones típicas de un proyecto. Las filas se etiquetan con nombres de configuración y las columnas con nombres de plataforma.

Nombre de configuración Plataforma: Win32 Plataforma: Win64
Depurar <Depuración de la configuración de Win32> <Depuración de la configuración de Win64>
Versión <Versión de la configuración de Win32> <Versión de la configuración de Win64>
MyConfig N/D <Configuración de MyConfig Win64>

Nota:

No se puede crear una configuración de solución MyConfig que excluya una plataforma Win32 a menos que el proyecto que tenga como destino no admita Win32.

Al cambiar la configuración activa de una solución, se selecciona el conjunto de configuraciones de proyecto compiladas, ejecutadas, depuradas o implementadas en esa solución. Por ejemplo, si cambia la configuración de la solución activa de Release a Debug, todos los proyectos de esa solución se compilan automáticamente con la configuración de los proyectos indicada en la configuración de depuración de la solución. Las configuraciones de los proyectos también se denominan Depurar a menos que el usuario haya realizado cambios manuales en configuration Manager del entorno.

Las propiedades de configuración de la solución almacenadas para cada proyecto incluyen el nombre del proyecto, el nombre de configuración del proyecto, las marcas para indicar si se va a compilar o no implementar y el nombre de la plataforma. Para obtener más información, consulte Configuración de la solución.

El usuario puede ver y establecer parámetros de configuración de la solución seleccionando la solución en la jerarquía (Explorador de soluciones) y abriendo las páginas de propiedades. De forma similar, puede ver y establecer parámetros de configuración del proyecto seleccionando un proyecto en Explorador de soluciones y abriendo las páginas de propiedades de ese proyecto.

El usuario también puede compilar un proyecto mediante opciones de configuración de versión y todo el resto con opciones de configuración de depuración si es necesario. Para obtener más información, consulte Configuración del proyecto para compilar.

En el diagrama siguiente se muestra cómo se implementan las interfaces que admiten configuraciones de solución y proyecto:

Configuration interfaces graphic Interfaces de configuración

Algunas notas relacionadas con el diagrama anterior:

  • IDispatch se marca como opcional en el objeto de configuración. En concreto, es opcional tener las interfaces de configuración en el objeto Browse.

  • IVsDebuggableProjectCfg está marcado como opcional en el objeto de configuración, pero es necesario para la compatibilidad con la depuración.

  • IVsProjectCfg2 está marcado como opcional en el objeto de configuración, pero es necesario para la compatibilidad con la agrupación de salida.

  • El objeto Proveedor de configuración se marca como un objeto opcional, pero la opción es donde implementarlo. Puede implementar el objeto en el objeto del proyecto o en un objeto independiente.

  • IVsCfgProvider2 es necesario para la compatibilidad con la plataforma y la edición de configuración. IVsCfgProvider es suficiente si no implementa esa funcionalidad.

  • Algunos de estos objetos que se muestran en el diagrama como objetos independientes se pueden combinar en la misma clase donde resulta práctico en función de sus requisitos de diseño específicos. En otros temas de esta sección, sin embargo, los objetos e interfaces asociados a esos objetos se analizarán según el escenario presentado en el diagrama.

  • Algunos objetos se implementan por separado. Por ejemplo, la compilación del proyecto y la solución se producen en subprocesos independientes y el objeto para administrar la compilación reside por separado del objeto que describe la configuración de la compilación.

    Para obtener más información sobre las interfaces de objeto de configuración y las interfaces de objeto del proveedor de configuración en el diagrama anterior, vea Project configuration object (Objeto de configuración del proyecto). Además, la configuración del proyecto para compilar proporciona más información sobre el generador de configuración y las interfaces de objetos de dependencia de compilación, y la configuración del proyecto para administrar la implementación describe aún más las interfaces asociadas al implementador de configuración y a los objetos de dependencia de implementación. Por último, la configuración del proyecto para la salida describe las interfaces de grupo de salida y objeto de salida, y el uso de páginas de propiedades para ver y establecer propiedades dependientes de la configuración.