Configuration de projet pour la sortieProject Configuration for Output

Chaque configuration peut prendre en charge un ensemble de processus de génération qui produisent des éléments de sortie tels que les fichiers exécutables ou des ressources.Every configuration can support a set of build processes that produce output items such as executable or resource files. Ces éléments de sortie sont privés à l’utilisateur et peuvent être placées dans des groupes qui lient les types de sortie, tels que des fichiers exécutables (.exe, .dll, .lib) et les fichiers sources (.idl, les fichiers .h).These output items are private to the user and can be placed in groups that link related types of output such as executable files (.exe, .dll, .lib) and source files (.idl, .h files).

Éléments de sortie peuvent être rendues disponibles via le IVsOutput2 méthodes et énumérées avec la IVsEnumOutputs méthodes.Output items can be made available through the IVsOutput2 methods and enumerated with the IVsEnumOutputs methods. Lorsque vous souhaitez regrouper les éléments de sortie, votre projet doit également implémenter le IVsOutputGroup interface.When you want to group output items, your project should also implement the IVsOutputGroup interface.

La construction de développé en implémentant IVsOutputGroup permet aux projets de sorties de groupe en fonction de l’utilisation.The construct developed by implementing IVsOutputGroup allows projects to group outputs according to usage. Par exemple, une DLL peut être regroupée avec sa base de données du programme (PDB).For instance, a DLL might be grouped with its program database (PDB).

Note

Un fichier PDB contient des informations de débogage et il est créé lorsque l’option « Générer des informations de débogage » est spécifiée lors de la génération du fichier .dll ou .exe.A PDB file contains debugging information and it is created when 'Generate Debug Info' option is specified when building the .dll or .exe. Le fichier .pdb est généralement généré pour la configuration de projet Debug uniquement.The .pdb file is usually generated for Debug project configuration only.

Le projet doit retourner le même nombre de groupes pour chaque configuration pris en charge, même si le nombre de sorties contenue dans un groupe peut varier à partir de la configuration à la configuration.The project must return the same number of groups for each configuration that it supports, even though the number of outputs contained within a group may vary from configuration to configuration. Par exemple, Matt du projet DLL peut inclure des mattd.dll et mattd.pdb dans la configuration Debug, mais uniquement inclure matt.dll dans la configuration de la vente au détail.For example, the project Matt's DLL might include mattd.dll and mattd.pdb in Debug configuration, but only include matt.dll in Retail configuration.

Les groupes ont également les mêmes informations d’identificateur, tel que le nom complet, nom complet et informations de groupe, de configuration de configuration dans un projet.The groups also have the same identifier information, such as canonical name, display name, and group information, from configuration to configuration within a project. Cette cohérence permet de déploiement et empaquetage de continuer à fonctionner même si la modification des configurations.This consistency allows deployment and packaging to continue to operate even if configurations change.

Groupes peuvent également avoir une génération de clé qui permet des raccourcis d’empaquetage pointer vers un nom significatif.Groups can also have a key output that allows packaging shortcuts to point to something meaningful. Un groupe peut être vide dans une configuration donnée, donc aucune hypothèse ne doit être effectuées sur la taille d’un groupe.Any group might be empty in a given configuration, so no assumptions should be made about the size of a group. La taille (nombre de sorties) de chaque groupe dans n’importe quelle configuration peut être différente de la taille d’un autre groupe dans la même configuration.The size (number of outputs) of each group in any configuration can be different from the size of another group in the same configuration. Il peut également être différente de la taille du même groupe dans une autre configuration.It can also be different from the size of the same group in another configuration.

Graphique de groupes de sortieOutput Groups graphic
Groupes de sortieOutput groups

La principale utilisation de la IVsProjectCfg interface consiste à fournir un accès pour générer, déployer et déboguer des objets de gestion et permettent aux projets aux sorties de groupe.The primary use of the IVsProjectCfg interface is to provide access to build, deploy and debug management objects and allow projects the freedom to group outputs. Pour plus d’informations sur l’utilisation de cette interface, consultez objet de Configuration de projet.For more information on the use of this interface, see Project Configuration Object.

Dans le diagramme précédent, groupe créé a une clé de sortie entre les configurations (bD.exe ou b.exe), l’utilisateur peut créer un raccourci vers intégré et savez que le raccourci fonctionne indépendamment de la configuration de déploiement.In the previous diagram, Group Built has a key output across configurations (either bD.exe or b.exe) so the user can create a shortcut to Built and know that the shortcut will work regardless of the configuration deployed. Source de groupe n’a pas une clé de sortie, afin de l’utilisateur ne peut pas créer un raccourci vers celui-ci.Group Source does not have a key output, so the user cannot create a shortcut to it. Si le groupe de déboguer générée est doté d’une clé, mais le groupe de vente au détail créé pas, qui est une implémentation incorrecte.If the Debug Group Built has a key output, but the Retail Group Built does not, that would be an incorrect implementation. Elle suit, puis, qui si n’importe quelle configuration comporte un groupe qui ne contient aucuns sortie, et, par conséquent, aucun fichier de clé, puis les autres configurations de groupe qui contiennent des sorties ne peut pas avoir des fichiers de clés.It follows, then, that if any configuration has a group that contains no outputs, and, as a result, no key file, then other configurations with that group that do contain outputs cannot have key files. Les éditeurs de programme d’installation supposent que les noms canoniques et les noms d’affichage des groupes, ainsi que l’existence d’un fichier de clé ne changent pas en se basant sur les configurations.The installer editors assume that canonical names and display names of groups, plus the existence of a key file, do not change based in configurations.

Notez que si un projet a un IVsOutputGroup qu’il ne souhaite pas de package ou de déployer, il ne suffit ne pas placer cette sortie dans un groupe.Note that if a project has an IVsOutputGroup that it does not want to package or deploy, it is sufficient to not put that output in a group. La sortie peut toujours être énumérée normalement en implémentant la EnumOutputs méthode qui retourne toutes les sorties d’une configuration, quelle que soit le regroupement.The output can still be enumerated normally by implementing the EnumOutputs method that returns all of a configuration's outputs regardless of grouping.

Pour plus d’informations, consultez l’implémentation de IVsOutputGroup dans l’exemple de projet personnalisé à MPF pour les projets.For more information, see the implementation of IVsOutputGroup in the Custom Project sample at MPF for Projects.

Voir aussiSee Also

Gestion des Options de Configuration Managing Configuration Options
Configuration de projet pour la génération Project Configuration for Building
Objet de Configuration de projet Project Configuration Object
Configuration de la solutionSolution Configuration