Partager via


Composants internes MSBuild pour les projets C++

Quand vous définissez des propriétés de projet dans l’IDE et enregistrez le projet, Visual Studio écrit les paramètres du projet dans votre fichier projet. Le fichier projet contient des paramètres uniques à votre projet. Toutefois, il ne contient pas tous les paramètres requis pour générer votre projet. Le fichier projet contient des Import éléments qui incluent un réseau de fichiers de support supplémentaires . Les fichiers de support contiennent les propriétés, cibles et paramètres restants requis pour générer le projet.

La plupart des cibles et propriétés dans les fichiers de support ont pour seul but d’implémenter le système de build. Cet article décrit les cibles et propriétés utiles que vous pouvez spécifier sur la ligne de commande MSBuild. Pour découvrir d’autres cibles et propriétés, explorez les fichiers dans les répertoires des fichiers de support.

Répertoires des fichiers de support

Par défaut, les principaux fichiers de support Visual Studio sont situés dans les répertoires suivants. Ces informations sont spécifiques à la version.

Visual Studio 2022 et 2019

  • %VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\

    Contient les fichiers cibles principaux (.targets) et les fichiers de propriété (.props) utilisés par les cibles. Par défaut, la $(VCTargetsPath) macro fait référence à ce répertoire. L’espace <version> réservé fait référence à la version de Visual Studio : v170 pour Visual Studio 2022, v160 pour Visual Studio 2019 ou v150 pour Visual Studio 2017.

  • %VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\Platforms\<platform>\

    Contient les fichiers cibles et de propriétés spécifiques à la plateforme qui remplacent les cibles et propriétés dans le répertoire parent. Ce répertoire contient également une DLL qui définit les tâches qui sont utilisées par les cibles dans ce répertoire. L’espace <platform> réservé représente le sous-répertoire ARM, ARM64, Win32 ou x64.

  • %VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\Platforms\<platform>\PlatformToolsets\<toolset>\

    Contient les répertoires qui permettent à la génération de générer des applications C++ à l’aide du répertoire spécifié <toolset>. L’espace <platform> réservé représente le sous-répertoire ARM, ARM64, Win32 ou x64. L’espace <toolset> réservé représente le sous-répertoire de l’ensemble d’outils.

Visual Studio 2017

  • %VSINSTALLDIR%Common7\IDE\VC\VCTargets\

    Contient les fichiers cibles principaux (.targets) et les fichiers de propriété (.props) utilisés par les cibles. Par défaut, la $(VCTargetsPath) macro fait référence à ce répertoire.

  • %VSINSTALLDIR%Common7\IDE\VC\VCTargets\Platforms\<platform>\

    Contient les fichiers cibles et de propriétés spécifiques à la plateforme qui remplacent les cibles et propriétés dans le répertoire parent. Ce répertoire contient également une DLL qui définit les tâches qui sont utilisées par les cibles dans ce répertoire. L’espace <platform> réservé représente le sous-répertoire ARM, ARM64, Win32 ou x64.

  • %VSINSTALLDIR%Common7\IDE\VC\VCTargets\Platforms\<platform>\PlatformToolsets\<toolset>\

    Contient les répertoires qui permettent à la génération de générer des applications C++ à l’aide du répertoire spécifié <toolset>. L’espace <platform> réservé représente le sous-répertoire ARM, Win32 ou x64. L’espace <toolset> réservé représente le sous-répertoire de l’ensemble d’outils.

Visual Studio 2015 et antérieur

  • <drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\<version>\

    Contient les fichiers cibles principaux (.targets) et les fichiers de propriété (.props) utilisés par les cibles. Par défaut, la macro $(VCTargetsPath) référence ce répertoire.

  • <drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\<version>\Platforms\<platform>\

    Contient les fichiers cibles et de propriétés spécifiques à la plateforme qui remplacent les cibles et propriétés dans le répertoire parent. Ce répertoire contient également une DLL qui définit les tâches qui sont utilisées par les cibles dans ce répertoire. L’espace <platform> réservé représente le sous-répertoire ARM, Win32 ou x64.

  • <drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\<version>\Platforms\<platform>\PlatformToolsets\<toolset>\

    Contient les répertoires qui permettent à la génération de générer des applications C++ à l’aide du répertoire spécifié <toolset>. L’espace <version> réservé est V110 pour Visual Studio 2012, V120 pour Visual Studio 2013 et V140 pour Visual Studio 2015. L’espace <platform> réservé représente le sous-répertoire ARM, Win32 ou x64. L’espace <toolset> réservé représente le sous-répertoire de l’ensemble d’outils. Par exemple, il s’agit de v140 pour créer des applications Windows à l’aide de l’ensemble d’outils Visual Studio 2015. Ou, v120_xp générer pour Windows XP à l’aide de l’ensemble d’outils Visual Studio 2013.

  • <drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\Platforms\<platform>\PlatformToolsets\<toolset>\

    Les chemins d’accès qui permettent à la build de générer des applications Visual Studio 2008 ou Visual Studio 2010 n’incluent pas le <version>fichier . Dans ces versions, l’espace <platform> réservé représente le sous-répertoire Itanium, Win32 ou x64. L’espace <toolset> réservé représente le sous-répertoire de l’ensemble d’outils v90 ou v100.

Fichiers de support

Les répertoires des fichiers de support contiennent des fichiers avec les extensions suivantes :

Extension Description
.targets Contient des éléments XML Target qui spécifient les tâches qui sont exécutées par la cible. Peut également contenir des éléments PropertyGroup, ItemGroup, ItemDefinitionGroup et Item définis par l’utilisateur qui sont utilisés pour assigner des fichiers et des options de ligne de commande aux paramètres de tâche.

Pour plus d’informations, consultez Target l’élément (MSBuild) .
.props Contient des éléments XML Property définis par l’utilisateur et Property Group qui spécifient des paramètres de fichier et des paramètres qui sont utilisés pendant une génération.

Peut également contenir des éléments XML Item définis par l’utilisateur et ItemDefinitionGroup qui spécifient des paramètres supplémentaires. Les éléments définis dans un groupe de définitions d’éléments ressemblent à des propriétés, mais ils ne sont pas accessibles à partir de la ligne de commande. Les fichiers projet Visual Studio utilisent fréquemment des éléments au lieu de propriétés pour représenter les paramètres.

Pour plus d’informations, consultez Element (MSBuild), ItemDefinitionGroupElement (MSBuild) et Item Element (MSBuild).ItemGroup
.xml Contient des éléments XML qui déclarent et initialisent des éléments d’interface utilisateur de l’IDE. Par exemple, les feuilles de propriétés, les pages de propriétés, les contrôles de zone de texte et les contrôles de zone de liste.

Les .xml fichiers prennent directement en charge l’IDE, et non MSBuild. Toutefois, les valeurs des propriétés IDE sont assignées pour générer des propriétés et des éléments.

La plupart des .xml fichiers se trouvent dans un sous-répertoire spécifique aux paramètres régionaux. Par exemple, les fichiers de la région English-US se trouvent dans $(VCTargetsPath)\1033\.

Cibles et propriétés utilisateur

Pour utiliser efficacement MSBuild, il permet de savoir quelles propriétés et cibles sont utiles et pertinentes. La plupart des propriétés et des cibles permettent d’implémenter le système de génération Visual Studio et ne sont pas pertinents pour l’utilisateur. Cette section décrit les propriétés orientées utilisateur et les cibles dont vous avez la connaissance.

Propriété PlatformToolset

La propriété PlatformToolset identifie l’ensemble d’outils MSVC utilisé dans la génération. Par défaut, l’ensemble d’outils actuel est utilisé. Lorsque cette propriété est définie, sa valeur est concaténée avec des chaînes littérales pour former le chemin d’accès. Il s’agit du répertoire qui contient les fichiers de propriété et de cible requis pour générer un projet pour une plateforme particulière. L’ensemble d’outils de plateforme doit être installé pour générer à l’aide de cette version d’ensemble d’outils de plateforme.

Par exemple, affectez à la propriété PlatformToolset la valeur v140 afin d’utiliser les bibliothèques et les outils Visual Studio 2015 pour générer votre application :

msbuild myProject.vcxproj /p:PlatformToolset=v140

Propriété PreferredToolArchitecture

La propriété PreferredToolArchitecture détermine si les outils et le compilateur 32 bits ou 64 bits sont utilisés dans la génération. Cette propriété n’affecte pas l’architecture ou la configuration de la plateforme de sortie. Par défaut, MSBuild utilise la version x86 du compilateur et des outils si cette propriété n’est pas définie.

Par exemple, affectez à la propriété PreferredToolArchitecture la valeur x64 afin d’utiliser les outils et le compilateur 64 bits pour générer votre application :

msbuild myProject.vcxproj /p:PreferredToolArchitecture=x64

Propriété UseEnv

Par défaut, les paramètres propres à la plateforme pour le projet actuel remplacent les PATHvariables d’environnement , PLATFORM INCLUDELIBLIBPATHCONFIGURATIONet les variables d’environnement. Définissez la UseEnv propriété pour true garantir que les variables d’environnement ne sont pas remplacées.

msbuild myProject.vcxproj /p:UseEnv=true

Targets

Il existe des centaines de cibles dans les fichiers de support Visual Studio. Toutefois, la plupart sont des cibles orientées système que l’utilisateur peut ignorer. La plupart des cibles système sont précédées d’un trait de soulignement (_) ou ont un nom commençant par PrepareFor, , ComputeBefore, After, Preou Post.

Le tableau suivant liste plusieurs cibles orientées utilisateur utiles.

Cible Description
BscMake Exécute l’outil Microsoft Browse Information Maintenance Utility. bscmake.exe
Build Génère le projet.

Cette cible est la valeur par défaut d’un projet.
ClCompile Exécute l’outil de compilateur MSVC. cl.exe
Clean Supprime les fichiers de génération temporaires et intermédiaires.
Lib Exécute l’outil Gestionnaire de bibliothèques Microsoft 32 bits. lib.exe
Link Exécute l’outil éditeur de liens MSVC. link.exe
ManifestResourceCompile Extrait une liste de ressources à partir d’un manifeste, puis exécute l’outil Compilateur de ressources Microsoft Windows. rc.exe
Midl Exécute l’outil de compilateur MIDL (Microsoft Interface Definition Language), midl.exe.
Rebuild Nettoie, puis génère votre projet.
ResourceCompile Exécute l’outil Compilateur de ressources Microsoft Windows. rc.exe
XdcMake Exécute l’outil de documentation XML. xdcmake.exe
Xsd Exécute l’outil De définition de schéma XML. xsd.exe Voir la note.

Remarque

Dans Visual Studio 2017 et versions ultérieures, la prise en charge du projet C++ pour .xsd les fichiers est déconseillée. Vous pouvez toujours utiliser Microsoft.VisualC.CppCodeProvider en ajoutant CppCodeProvider.dll manuellement au GAC.

Voir aussi

Informations de référence sur les tâches MSBuild
BscMake tâche
CL tâche
CPPClean tâche
LIB tâche
Link tâche
MIDL tâche
MT tâche
RC tâche
SetEnv tâche
VCMessage tâche
XDCMake tâche