Partager via


Vue d’ensemble des options de configuration

Les projets dans Visual Studio peuvent prendre en charge plusieurs configurations qui peuvent être développées, déboguées, exécutées et/ou déployées. Une configuration est un type de build décrit par un jeu nommé de propriétés, généralement des commutateurs de compilateur et des emplacements de fichiers. Par défaut, les nouvelles solutions contiennent deux configurations, Déboguer et Libérer. Ces configurations peuvent être appliquées en utilisant leurs paramètres par défaut, ou modifiées pour répondre aux exigences spécifiques de votre solution et/ou de votre projet. Certains packages peuvent être prédéfinis de deux manières : en tant qu’éditeur ActiveX ou en tant que composant in-situ. Toutefois, les projets ne doivent pas nécessairement prendre en charge des configurations multiples. S’il n’y a qu’une seule configuration disponible, cette configuration est mappée dans toutes les configurations de la solution.

Les configurations se composent généralement de deux parties : le nom de la configuration (par exemple, Déboguer ou Libérer) et les paramètres de la plateforme. Le nom de la plateforme d’une configuration identifie l’environnement ciblé par la configuration, tel qu’un jeu d’API ou une plateforme de système d’exploitation. Les utilisateurs de Visual Studio ne peuvent pas créer de plateforme ; ils doivent choisir parmi les sélections qu’offre un projet VSPackage. Lorsqu’un utilisateur installe un VSPackage, la plateforme de livraison créée lors du développement du package peut revêtir n’importe quel nom de plateforme sur la base de n’importe quel critère défini par le créateur du package. L’utilisateur peut alors sélectionner dans la liste des plateformes mises à disposition par le VSPackage lorsque les pages de propriétés sont instanciées.

Les noms des plateformes sont facultatifs, car tous les projets ne prennent pas en charge le concept de plateforme. Lorsqu’une configuration ne comporte pas de nom de plateforme, la chaîne N/A est affichée dans l’IU.

Chaque solution possède son propre jeu de configurations, dont unf seule peut être actif à la fois. Une configuration de solution est un jeu de pas plus d’une configuration de chaque projet. La stipulation « pas plus de » résulte de la possibilité d’exclure un projet de la configuration d’une solution. Les utilisateurs peuvent créer leurs configurations de solutions personnalisées.

La table suivante illustre les configurations typiques d’un projet. Les lignes sont étiquetées avec les noms des configurations et les colonnes avec les noms des plateformes.

Nom de la configuration Plateforme : Win32 Plateforme : Win64
Déboguer <Déboguer les paramètres Win32> <Déboguer les paramètres Win64>
Version release <Libérer les paramètres Win32> <Libérer les paramètres Win64>
MyConfig S/O <Paramètres MyConfig Win64>

Remarque

Vous ne pouvez pas créer une configuration de solution MyConfig qui exclut une plateforme Win32, sauf si le projet que vous ciblez ne prend pas en charge Win32.

La modification de la configuration active d’une solution permet de sélectionner le jeu de configurations du projet qui est créé, exécuté, débogué ou déployé dans cette solution. Par exemple, si vous modifiez la configuration de la solution active de Libérer à Déboguer, tous les projets de cette solution sont automatiquement créés avec la configuration des projets indiquée dans la configuration de débogage de la solution. Les configurations des projets sont également nommées Déboguer, sauf si l’utilisateur a effectué des modifications manuelles dans le gestionnaire de configuration de l’environnement.

Les propriétés de configuration de la solution stockées pour chaque projet comprennent le nom du projet, le nom de la configuration du projet, les indicateurs précisant s’il faut ou non générer ou déployer la solution, et le nom de la plateforme. Pour plus d’informations, consultez Configuration de la solution.

L’utilisateur peut afficher et définir les paramètres de configuration de la solution en sélectionnant la solution dans la hiérarchie (Explorateur de solutions) et en ouvrant les pages de propriétés. De même, vous pouvez afficher et définir les paramètres de configuration du projet en sélectionnant un projet dans l’explorateur de solutions et en ouvrant les pages de propriétés de ce projet.

L’utilisateur peut également générer un projet en utilisant les paramètres de configuration de la mise en production et tous les autres paramètres avec les paramètres de configuration du débogage, si nécessaire. Pour plus d’informations, consultez Configuration du projet pour la génération.

Le diagramme suivant montre comment les interfaces qui prennent en charge les configurations de la solution et du projet sont implémentées :

Graphique des interfaces de configuration

Interfaces de configuration

Quelques notes relatives au diagramme précédent :

  • IDispatch est marqué comme facultatif dans l’objet de configuration. Plus précisément, il est facultatif d’avoir les interfaces de configuration sur l’objet de navigation.

  • IVsDebuggableProjectCfg est marqué facultatif dans l’objet de configuration, mais est requis pour la prise en charge du débogage.

  • IVsProjectCfg2 est marqué facultatif dans l’objet de configuration, mais il est nécessaire pour la prise en charge du regroupement des sorties.

  • L’objet Config Provider est indiqué comme un objet optionnel, mais l’option consiste à savoir où l’implémenter. Vous pouvez implémenter l’objet sur l’objet du projet ou sur un objet séparé.

  • IVsCfgProvider2 est nécessaire pour la prise en charge de la plateforme et la modification de la configuration. IVsCfgProvider est suffisant si vous n’implémentez pas cette fonctionnalité.

  • Certains de ces objets présentés dans le diagramme comme des objets distincts peuvent être combinés dans la même classe lorsque cela s’avère pratique, en fonction de vos exigences spécifiques en matière de conception. Dans les autres rubriques de cette section, cependant, les objets et les interfaces associés à ces objets seront examinés en fonction du scénario présenté dans le diagramme.

  • Certains objets sont implémentés séparément. Par exemple, la génération d’un projet et celle d’une solution se déroulent sur des threads distincts et l’objet qui gère la génération est séparé de l’objet qui décrit la configuration de la génération.

    Pour plus d’informations sur les interfaces de l’objet de configuration et de l’objet fournisseur de configuration dans le diagramme précédent, consultez Objet de configuration de projet. En outre, Configuration du projet pour la génération fournit plus d’informations sur les interfaces du générateur de configuration et de l’objet de dépendance de génération, et Configuration du projet pour la gestion du déploiement décrit plus en détail les interfaces attachées au déployeur de configuration et aux objets de dépendance de déploiement. Enfin, la Configuration du projet pour les sorties décrit les interfaces du groupe de sortie et de l’objet de sortie, ainsi que l’utilisation des pages de propriétés pour afficher et définir les propriétés dépendant de la configuration.