Configuration de projet pour la sortie
Chaque configuration peut prendre en charge un ensemble de processus de génération qui produisent des éléments de sortie tels que des fichiers exécutables ou de ressources. Ces éléments de sortie sont privés à l’utilisateur et peuvent être placés dans des groupes qui lient des types de sortie associés tels que des fichiers exécutables (.exe, .dll, .lib) et des fichiers sources (fichiers .idl, .h).
Les éléments de sortie peuvent être mis à disposition via les IVsOutput2 méthodes et énumérés avec les IVsEnumOutputs méthodes. Lorsque vous souhaitez regrouper les éléments de sortie, votre projet doit également implémenter l’interface IVsOutputGroup .
La construction développée en implémentant IVsOutputGroup
permet aux projets de regrouper les sorties en fonction de l’utilisation. Par exemple, une DLL peut être regroupée avec sa base de données de programme (PDB).
Remarque
Un fichier PDB contient des informations de débogage et est créé lorsque l’option « Générer des informations de débogage » est spécifiée lors de la génération de l'.dll ou .exe. Le fichier .pdb est généralement généré pour la configuration du projet de débogage uniquement.
Le projet doit retourner le même nombre de groupes pour chaque configuration qu’il prend en charge, même si le nombre de sorties contenues dans un groupe peut varier de la configuration à la configuration. Par exemple, la DLL de Matt du projet peut inclure mattd.dll et mattd.pdb dans la configuration de débogage, mais inclure uniquement matt.dll dans la configuration de la vente au détail.
Les groupes ont également les mêmes informations d’identificateur, telles que le nom canonique, le nom complet et les informations de groupe, de la configuration à la configuration au sein d’un projet. Cette cohérence permet au déploiement et à l’empaquetage de continuer à fonctionner même si les configurations changent.
Les groupes peuvent également avoir une sortie clé qui permet d’empaqueter des raccourcis pour pointer vers quelque chose de significatif. Tout groupe peut être vide dans une configuration donnée, donc aucune hypothèse ne doit être faite sur la taille d’un groupe. 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. Elle peut également être différente de la taille du même groupe dans une autre configuration.
Groupes de sortie
L’utilisation principale de l’interface IVsProjectCfg consiste à fournir l’accès aux objets de gestion de génération, de déploiement et de débogage, et à autoriser les projets à regrouper les sorties. Pour plus d’informations sur l’utilisation de cette interface, consultez Project Configuration Object.
Dans le diagramme précédent, Group Built a une sortie clé entre les configurations (bD.exe ou b.exe) afin que l’utilisateur puisse créer un raccourci vers Build et savoir que le raccourci fonctionnera indépendamment de la configuration déployée. La source de groupe n’a pas de sortie de touche, de sorte que l’utilisateur ne peut pas créer de raccourci vers celui-ci. Si le groupe de débogage généré a une sortie clé, mais que le groupe de vente au détail généré ne le fait pas, il s’agit d’une implémentation incorrecte. Il suit, puis, si une configuration a un groupe qui ne contient aucune sortie, et, par conséquent, aucun fichier de clé, alors d’autres configurations avec ce groupe qui contiennent des sorties ne peuvent pas avoir de fichiers clés. Les éditeurs du 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 fonction des configurations.
Notez que si un projet ne souhaite pas empaqueter ou déployer un projet IVsOutputGroup
, il suffit de ne pas placer cette sortie dans un groupe. La sortie peut toujours être énumérée normalement en implémentant la EnumOutputs méthode qui retourne toutes les sorties d’une configuration, quel que soit le regroupement.
Pour plus d’informations, consultez l’implémentation de IVsOutputGroup
l’exemple De projet personnalisé sur MPF pour projets.