VCBuild et MSBuild : Générer des modifications système dans Visual Studio 2010
Le système MSBuild pour les projets C++ a été introduit dans Visual Studio 2010. Dans Visual Studio 2008 et versions antérieures, le système VCBuild a été utilisé. Certains types de fichiers et concepts qui dépendent de VCBuild n’existent pas ou sont représentés différemment dans MSBuild. Ce document présente les différences du système de génération actuel. Pour convertir un projet Visual Studio 2008 en MSBuild, vous devez utiliser Visual Studio 2010. Une fois le projet converti, vous devez utiliser la dernière version de Visual Studio pour effectuer une mise à niveau vers l’ensemble d’outils ide et compilateur actuel. Pour plus d’informations, notamment sur la façon d’obtenir Visual Studio 2010, consultez Instructions pour Visual Studio 2008.
Les sections suivantes résument les modifications de VCBuild à MSBuild. Si votre projet VCBuild a des règles de build ou des macros personnalisées qui ne sont pas reconnues par MSBuild, consultez Visual Studio Projects - C++ pour savoir comment traduire ces instructions vers le système MSBuild. La conversion initiale de VCBuild en MSBuild n’est qu’une étape intermédiaire. Il n’est pas nécessaire d’obtenir complètement le fichier projet ou d’obtenir le programme à compiler sans erreurs. Vous utilisez uniquement Visual Studio 2010 pour convertir le projet au format MSBuild afin d’obtenir le projet fonctionnant dans la dernière version de Visual Studio.
.vcproj devient maintenant .vcxproj
Les fichiers projet n’utilisent plus l’extension de nom de fichier .vcproj. Visual Studio 2010 convertit automatiquement les fichiers projet créés par une version antérieure de Visual C++ au format MSBuild, qui utilise l’extension .vcxproj pour les fichiers projet.
.vsprops devient maintenant .props
Dans Visual Studio 2008 et versions antérieures, une feuille de propriétés de projet est un fichier XML qui a une extension de nom de fichier .vsprops. Une feuille de propriétés de projet permet de spécifier des commutateurs pour les outils de génération tels que le compilateur ou l’éditeur de liens, ainsi que de créer des macros définies par l’utilisateur. Dans MSBuild, l’extension de nom de fichier d’une feuille de propriétés de projet est .props.
Règles de génération personnalisées et fichiers .rules
Dans Visual Studio 2008 et versions antérieures, un fichier de règle est un fichier XML qui a une extension de nom de fichier .rules. Un fichier de règles permet de définir des règles de génération personnalisées et de les incorporer dans le processus de génération d’un projet Visual Studio C++. Une règle de génération personnalisée, que vous pouvez associer à une ou plusieurs extensions de nom de fichier, vous permet de passer des fichiers d’entrée à un outil qui crée un ou plusieurs fichiers de sortie.
Dans le système MSBuild, les règles de génération personnalisées sont représentées par trois types de fichiers, .xml, .props et .targets, au lieu d’un fichier .rules. Lorsqu’un fichier .rules créé à l’aide d’une version antérieure de Visual C++ est migré vers Visual Studio 2010, les fichiers .xml, .props et .targets équivalents sont créés et stockés dans votre projet avec le fichier .rules d’origine.
Important
Dans Visual Studio 2010, l’IDE ne prend pas en charge la création de nouvelles règles. Pour cette raison, le moyen le plus simple d’utiliser un fichier de règle à partir d’un projet créé à l’aide d’une version antérieure de Visual C++ consiste à migrer le projet vers Visual Studio 2010.
Macros d’héritage
Dans Visual Studio 2008 et versions antérieures, la macro $(Inherit) spécifie l’ordre dans lequel les propriétés héritées apparaissent sur la ligne de commande composée par le système de génération de projet. La macro $(NoInherit) permet d’ignorer toutes les occurrences de $(Inherit) et de rendre non héritées toutes les propriétés qui seraient sinon héritées. Par exemple, la macro $(Inherit) entraîne par défaut l’ajout à la ligne de commande des fichiers spécifiés à l’aide de l’option de compilateur /I (Additional Include Directories).
Dans Visual Studio 2010, l’héritage est pris en charge en spécifiant la valeur d’une propriété comme concaténation d’une ou plusieurs valeurs littérales et macros de propriété. Les macros $(Inherit) et $(NoInherit) ne sont pas prises en charge.
Dans l’exemple suivant, une liste délimitée par des points-virgules est affectée à une propriété dans une page de propriétés. La liste se compose de la concaténation du littéral de valeur> et de la valeur de la MyProperty
propriété, accessible à l’aide de la notation de macro, $(MyProperty).<
Property=<value>;$(MyProperty)
Fichiers .vcxproj.user
Un fichier utilisateur (.vcxproj.user) stocke des propriétés propres à l’utilisateur, par exemple, des paramètres de débogage et de déploiement. Le fichier vcxproj.user s’applique à tous les projets d’un utilisateur particulier.
Fichier .vcxproj.filters
Lorsque Explorateur de solutions est utilisé pour ajouter un fichier à un projet, le fichier de filtres (.vcxproj.filters) définit l’emplacement où, dans l’arborescence Explorateur de solutions, le fichier est ajouté, en fonction de son extension de nom de fichier.
Paramètres des répertoires VC++
Les paramètres des répertoires Visual C++ sont spécifiés dans la page de propriétés des répertoires VC++. Dans Visual Studio 2008 et versions antérieures, les paramètres des répertoires s’appliquent par utilisateur et la liste des répertoires exclus est spécifiée dans le fichier sysincl.dat .
Vous ne pouvez pas changer les paramètres des répertoires VC++ si vous exécutez devenv /resetsettings sur la ligne de commande. Vous ne pouvez pas non plus changer les paramètres si vous ouvrez le menu Outils, cliquez sur Importation et exportation de paramètres, puis sélectionnez l’option Réinitialiser tous les paramètres.
Pour migrer les paramètres des répertoires VC++ à partir d’un fichier .vssettings créé par une version antérieure de Visual Studio :
- Ouvrez le menu Outils, cliquez sur Importer et exporter Paramètres
- Sélectionner Importer les paramètres d’environnement sélectionnés
- Suivez les instructions de l’Assistant.