Configuration de la solution
Les configurations de solution stockent les propriétés au niveau de la solution. Ils dirigent le comportement de la clé Start (F5) et des commandes Build . Par défaut, ces commandes créent et démarrent la configuration du débogage. Les deux commandes s’exécutent dans le contexte d’une configuration de solution. Cela signifie que l’utilisateur peut s’attendre à ce que F5 démarre et génère la solution active configurée via les paramètres. L’environnement est conçu pour optimiser les solutions plutôt que pour les projets lorsqu’il s’agit de créer et d’exécuter.
La barre d’outils Visual Studio standard contient un bouton Démarrer et une liste déroulante de configuration de solution à droite du bouton Démarrer. Cette liste permet aux utilisateurs de choisir la configuration à démarrer lorsque la touche F5 est enfoncée, de créer leurs propres configurations de solution ou de modifier une configuration existante.
Remarque
Il n’existe aucune interface d’extensibilité pour créer ou modifier les configurations de solution. Vous devez utiliser DTE.SolutionBuild
. Toutefois, il existe des API d’extensibilité pour la gestion de la build de solution. Pour plus d’informations, consultez IVsSolutionBuildManager2.
Voici comment implémenter les configurations de solution prises en charge par votre type de projet :
Project
Affiche les noms des projets trouvés dans la solution actuelle.
Configuration
Pour fournir la liste des configurations prises en charge par votre type de projet et affichées dans les pages de propriétés, implémentez IVsCfgProvider2.
La colonne Configuration affiche le nom de la configuration du projet à générer dans cette configuration de solution et répertorie toutes les configurations de projet lorsque vous cliquez sur le bouton flèche. L’environnement appelle la GetCfgNames méthode pour remplir cette liste. Si la GetCfgProviderProperty méthode indique que le projet prend en charge la modification de la configuration, les sélections Nouvelles ou Modifier sont également affichées sous le titre Configuration. Chacune de ces sélections lance des boîtes de dialogue qui appellent des méthodes de l’interface
IVsCfgProvider2
pour modifier les configurations du projet.Si un projet ne prend pas en charge les configurations, la colonne Configuration affiche Aucun et est désactivée.
Plate-forme
Affiche la plateforme pour laquelle la configuration du projet sélectionnée est générée et répertorie toutes les plateformes disponibles pour le projet lorsque vous cliquez sur le bouton flèche. L’environnement appelle la GetPlatformNames méthode pour remplir cette liste. Si la GetCfgProviderProperty méthode indique que le projet prend en charge la modification de la plateforme, les sélections Nouvelles ou Modifier sont également affichées sous le titre Plateforme. Chacune de ces sélections lance des boîtes de dialogue qui appellent
IVsCfgProvider2
des méthodes pour modifier les plateformes disponibles du projet.Si un projet ne prend pas en charge les plateformes, la colonne de plateforme de ce projet affiche Aucun et est désactivée.
Build
Spécifie si le projet est généré ou non par la configuration actuelle de la solution. Les projets non sélectionnés ne sont pas générés lorsque les commandes de build au niveau de la solution sont appelées malgré les dépendances de projet qu’elles contiennent. Les projets non sélectionnés pour être générés sont toujours inclus dans le débogage, l’exécution, l’empaquetage et le déploiement de la solution.
Déployer
Spécifie si le projet sera déployé ou non lorsque les commandes Démarrer ou Déployer sont utilisées avec la configuration de build de la solution sélectionnée. La zone case activée de ce champ sera disponible si le projet prend en charge le déploiement en implémentant l’interface IVsDeployableProjectCfg sur son IVsProjectCfg2 objet.
Une fois qu’une nouvelle configuration de solution est ajoutée, l’utilisateur peut le sélectionner dans la zone de liste déroulante Configuration de la solution dans la barre d’outils standard pour générer et/ou démarrer cette configuration.