Vue d’ensemble des options de configuration

Les projets dans Visual Studio peuvent prendre en charge plusieurs configurations qui peuvent être générées, déboguées, exécutées et/ou déployées. Une configuration est un type de build décrit avec un ensemble 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ébogage et mise en production. Ces configurations peuvent être appliquées à l’aide de leurs paramètres par défaut ou modifiées pour répondre à vos besoins spécifiques en matière de solution et/ou de projet. Certains packages peuvent être générés de deux façons : en tant qu’éditeur ActiveX ou en tant que composant sur place. Toutefois, les projets n’ont pas besoin de prendre en charge plusieurs configurations. S’il n’existe qu’une seule configuration disponible, cette configuration est mappée dans toutes les configurations de 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 cible par la configuration, tel qu’un ensemble 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’un VSPackage de projet autorise. Lorsqu’un utilisateur installe un VSPackage, la plateforme de remise créée pendant le développement du package peut exposer n’importe quel nom de plateforme souhaité en fonction des critères définis par le créateur du package. L’utilisateur peut ensuite sélectionner dans la liste des plateformes mises à disposition via VSPackage lorsque les pages de propriétés sont instanciées.

Les noms de plateforme sont facultatifs, car tous les projets ne prennent pas en charge le concept de plateformes. Lorsqu’une configuration n’a pas de nom de plateforme, la chaîne N/A s’affiche dans l’interface utilisateur.

Chaque solution a son propre ensemble de configurations, dont une seule peut être active à la fois. Une configuration de solution n’est pas un ensemble de plusieurs configurations de chaque projet. La disposition « pas plus que » est due à l’option d’exclusion d’un projet d’une configuration de solution. Les utilisateurs peuvent créer leurs propres configurations de solution personnalisées.

Le tableau suivant illustre la configuration des configurations classiques pour un projet. Les lignes sont étiquetées avec des noms de configuration et les colonnes avec des noms de plateforme.

Nom de la configuration Plateforme : Win32 Plateforme : Win64
Déboguer <Déboguer les paramètres Win32> <Déboguer les paramètres Win64>
Version release <Publier les paramètres Win32> <Publier les paramètres Win64>
MyConfig S/O <Paramètres De 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 sélectionne l’ensemble de configurations de projet générées, exécutées, déboguées ou déployées dans cette solution. Par exemple, si vous modifiez la configuration de la solution active de Release vers Debug, tous les projets de cette solution sont générés automatiquement 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ébogage , sauf si l’utilisateur a apporté des modifications manuelles dans Configuration Manager de l’environnement.

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

L’utilisateur peut afficher et définir des paramètres de configuration de 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 des paramètres de configuration de projet en sélectionnant un projet dans Explorateur de solutions et en ouvrant les pages de propriétés de ce projet.

L’utilisateur peut également créer un projet à l’aide des paramètres de configuration de mise en production et tous les autres avec des paramètres de configuration de débogage si nécessaire. Pour plus d’informations, consultez Configuration de Project pour la génération.

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

Configuration interfaces graphic 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 de sortie.

  • L’objet Config Provider est marqué comme un objet facultatif, mais l’option consiste à l’implémenter. Vous pouvez implémenter l’objet sur l’objet projet ou sur un objet distinct.

  • 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 en tant qu’objets distincts peuvent être combinés dans la même classe que pratique en fonction de vos besoins de conception spécifiques. Dans d’autres rubriques de cette section, toutefois, les objets et interfaces associés à ces objets seront abordé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 de projet et de solution se produit sur des threads distincts et l’objet pour gérer la build se trouve séparément de l’objet décrivant la configuration de la build.

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