Configuración del proyecto para la salida

Cada configuración puede admitir un conjunto de procesos de compilación que generan elementos de salida como archivos ejecutables o de recursos. Estos elementos de salida son privados para el usuario y se pueden colocar en grupos que vinculan tipos relacionados de salida, como archivos ejecutables (.exe, .dll, .lib) y archivos de código fuente (archivos .idl, .h).

Los elementos de salida se pueden hacer disponibles a través de los IVsOutput2 métodos y enumerados con los IVsEnumOutputs métodos . Cuando quiera agrupar elementos de salida, el proyecto también debe implementar la IVsOutputGroup interfaz .

La construcción desarrollada mediante la implementación IVsOutputGroup permite a los proyectos agrupar las salidas según el uso. Por ejemplo, es posible que un archivo DLL se agrupe con su base de datos de programa (PDB).

Nota:

Un archivo PDB contiene información de depuración y se crea cuando se especifica la opción "Generar información de depuración" al compilar el archivo .dll o .exe. El archivo .pdb se genera normalmente solo para la configuración del proyecto de depuración.

El proyecto debe devolver el mismo número de grupos para cada configuración que admita, aunque el número de salidas contenidas en un grupo puede variar de la configuración a la configuración. Por ejemplo, el archivo DLL de Matt del proyecto podría incluir mattd.dll y mattd.pdb en la configuración de depuración, pero solo incluir matt.dll en la configuración de Retail.

Los grupos también tienen la misma información de identificador, como el nombre canónico, el nombre para mostrar y la información de grupo, de la configuración a la configuración dentro de un proyecto. Esta coherencia permite que la implementación y el empaquetado sigan funcionando incluso si cambian las configuraciones.

Los grupos también pueden tener una salida de clave que permita que los accesos directos de empaquetado apunten a algo significativo. Cualquier grupo puede estar vacío en una configuración determinada, por lo que no se debe realizar ninguna suposición sobre el tamaño de un grupo. El tamaño (número de salidas) de cada grupo de cualquier configuración puede ser diferente del tamaño de otro grupo en la misma configuración. También puede ser diferente del tamaño del mismo grupo en otra configuración.

Output Groups graphic Grupos de salida

El uso principal de la IVsProjectCfg interfaz es proporcionar acceso a objetos de administración de compilación, implementación y depuración y permite a los proyectos agrupar salidas. Para obtener más información sobre el uso de esta interfaz, vea Project Configuration Object.

En el diagrama anterior, Group Built tiene una salida de clave entre configuraciones (bD.exe o b.exe) para que el usuario pueda crear un acceso directo a Built y saber que el acceso directo funcionará independientemente de la configuración implementada. El origen del grupo no tiene una salida de clave, por lo que el usuario no puede crear un acceso directo a ella. Si el grupo de depuración compilado tiene una salida de clave, pero el grupo minorista compilado no, sería una implementación incorrecta. A continuación, se indica que si alguna configuración tiene un grupo que no contiene salidas y, como resultado, ningún archivo de clave, otras configuraciones con ese grupo que contienen salidas no pueden tener archivos de clave. Los editores del instalador asumen que los nombres canónicos y los nombres para mostrar de grupos, además de la existencia de un archivo de clave, no cambian en función de las configuraciones.

Tenga en cuenta que si un proyecto tiene un IVsOutputGroup que no desea empaquetar o implementar, es suficiente no colocar esa salida en un grupo. La salida todavía se puede enumerar normalmente mediante la implementación del EnumOutputs método que devuelve todas las salidas de una configuración independientemente de la agrupación.

Para obtener más información, vea la implementación de IVsOutputGroup en el ejemplo de proyecto personalizado en MPF for Projects.

Consulte también