Objet de configuration de projet
L’objet de configuration du projet gère l’affichage des informations de configuration dans l’interface utilisateur.
Pages de propriétés de configuration de projet
Le fournisseur de configuration de projet gère les configurations de projet. L’environnement et d’autres packages, pour accéder et récupérer des informations sur les configurations d’un projet, appelez les interfaces attachées à l’objet Fournisseur de configuration de projet.
Remarque
Vous ne pouvez pas créer ou modifier des fichiers de configuration de solution par programmation. Vous devez utiliser DTE.SolutionBuilder
. Pour plus d’informations, consultez Configuration de la solution.
Pour publier un nom complet à utiliser dans l’interface utilisateur de configuration, votre projet doit implémenter get_DisplayName. L’environnement appelle GetCfgs, qui retourne une liste de IVsCfg
pointeurs que vous pouvez utiliser pour obtenir les noms d’affichage des informations de configuration et de plateforme à répertorier dans l’interface utilisateur de l’environnement. La configuration active et la plateforme sont déterminées par la configuration du projet stockée dans la configuration de la solution active. La FindActiveProjectCfg méthode peut être utilisée pour récupérer la configuration du projet actif.
L’objet IVsProjectCfgProvider peut éventuellement être implémenté sur l’objet IVsCfgProvider2 avec l’objet IVsCfgProviderEventsHelper pour vous permettre de récupérer un IVsProjectCfg2
objet en fonction du nom de configuration du projet canonique.
Une autre façon de fournir à l’environnement et à d’autres projets l’accès aux configurations de projet consiste à fournir une implémentation de la IVsCfgProvider2::GetCfgs
méthode pour renvoyer un ou plusieurs objets de configuration. Les projets peuvent également implémenter IVsProjectCfg2, qui héritent et IVsProjectCfg
ainsi de IVsCfg
, pour fournir des informations spécifiques à la configuration. IVsCfgProvider2 prend en charge les plateformes et les fonctionnalités permettant d’ajouter, de supprimer et de renommer des configurations de projet.
Remarque
Étant donné que Visual Studio n’est plus limité à deux types de configuration, le code qui traite les configurations ne doit pas être écrit avec des hypothèses sur le nombre de configurations, ni ne doit-il pas être écrit avec l’hypothèse qu’un projet qui n’a qu’une seule configuration est nécessairement Déboguer ou Retail. Cela permet d’utiliser et get_IsDebugOnly d’obsolèteget_IsReleaseOnly.
Appel QueryInterface
de l’objet retourné à partir des IVsGetCfgProvider::GetCfgProvider
récupérations IVsCfgProvider2
. S’il IVsGetCfgProvider
n’est pas trouvé en appelant QueryInterface
l’objet IVsProject3
projet, vous pouvez accéder à l’objet fournisseur de configuration en appelant QueryInterface
l’objet de navigateur racine de hiérarchie pour l’objet retourné IVsHierarchy::GetProperty(VSITEM_ROOT, VSHPROPID_BrowseObject)
, ou via un pointeur vers le fournisseur de configuration retourné pour IVsHierarchy::GetProperty(VSITEM_ROOT, VSHPROPID_ConfigurationProvider)
.
IVsProjectCfg2
fournit principalement l’accès aux objets de gestion de build, de débogage et de déploiement et permet aux projets de regrouper les sorties. Les méthodes et IVsProjectCfg
IVsProjectCfg2
peuvent être utilisées pour implémenter IVsBuildableProjectCfg pour gérer le processus de génération et IVsOutputGroup les pointeurs pour les groupes de sortie d’une configuration.
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. Les groupes doivent également avoir les mêmes informations d’identificateur (nom canonique, nom complet et informations de groupe) de la configuration à la configuration au sein d’un projet. Pour plus d’informations, consultez Configuration du projet pour la sortie.
Pour activer le débogage, vos configurations doivent implémenter IVsDebuggableProjectCfg. IVsDebuggableProjectCfg
est une interface facultative implémentée par les projets pour permettre au débogueur de lancer une configuration et est implémentée sur l’objet de configuration avec IVsCfg
et IVsProjectCfg
. L’environnement l’appelle lorsque l’utilisateur choisit de démarrer le débogueur en appuyant sur F5.
ISpecifyPropertyPages
et IDispatch
sont utilisés conjointement avec les pages de propriétés pour récupérer et afficher des informations dépendantes de la configuration à l’utilisateur. Pour plus d’informations, consultez Pages de propriétés.