Macros courantes pour les commandes et propriétés MSBuild

Selon vos options d’installation, Visual Studio peut mettre à votre disposition des centaines de macros dans un projet Visual Studio basé sur .vcxproj MSBuild. Les macros correspondent aux propriétés MSBuild définies par défaut, ou dans ou .targets dans .props des fichiers, ou dans les paramètres de votre projet. Vous pouvez utiliser ces macros partout dans la boîte de dialogue Pages de propriétés d’un projet où les chaînes sont acceptées. Ces macros ne respectent pas la casse.

Voir les propriétés et macros actuelles

Pour afficher toutes les macros actuellement disponibles, ouvrez les pages de propriétés du projet dans le menu principal en sélectionnant Propriétés du projet>. Dans la boîte de dialogue Pages de propriétés, choisissez une entrée qui contient une macro. Vous pouvez reconnaître une macro par le signe dollar et la parenthèse qui entourent son nom.

Par exemple, dans le volet gauche, sélectionnez Répertoires VC++ Propriétés>de configuration, puis, dans le volet droit, sélectionnez Inclure des répertoires. La valeur des répertoires Include est $(VC_IncludePath);$(WindowsSDK_IncludePath);.

Le signe dollar et la parenthèse entourant ces deux valeurs indiquent qu’elles sont des macros. L’expansion de ces deux macros définit les répertoires include à rechercher.

Sélectionnez Inclure des répertoires et une liste déroulante s’affiche à la fin de la ligne. Sélectionnez le bouton déroulant, puis sélectionnez Modifier. Dans la boîte de dialogue Inclure des répertoires qui s’affiche, sélectionnez le bouton Macros>> .

Cela développe la boîte de dialogue pour afficher l’ensemble actuel de propriétés et de macros visibles par Visual Studio, ainsi que la valeur actuelle pour chacun d’eux. Pour plus d’informations, consultez la section Spécification des valeurs définies par l’utilisateur de la référence de page de propriétés du projet C++.

Capture d’écran de la boîte de dialogue Répertoires Include visual Studio après avoir choisi le bouton Macros.

Sur la droite se trouve une liste de macros Visual Studio telles que $(AllowLocalNetworkLoopback). Le volet gauche affiche la valeur évaluée de la propriété include directory. Le volet inférieur indique quelles macros ont été développées, le cas échéant, pour produire la valeur de la propriété d’annuaire include. Étant donné que la macro Include Directories est une combinaison de deux autres macros, $(VC_IncludePath) et $(WindowsSDK_IncludePath), le volet inférieur, intitulé Valeurs héritées, répertorie ces deux macros.

Liste des macros courantes

Ce tableau décrit un sous-ensemble couramment utilisé des macros disponibles ; il y a beaucoup d’autres non répertoriés ici. Accédez à la boîte de dialogue Macros pour afficher toutes les propriétés et leurs valeurs actuelles dans votre projet. Pour plus d’informations sur la façon dont les définitions de propriétés MSBuild sont créées et utilisées en tant que macros dans .props, .targetset .vcxproj les fichiers, consultez propriétés MSBuild.

Macro Description
$(Configuration) Nom de la configuration de projet actuelle, par exemple « Debug ».
$(DevEnvDir) Répertoire d’installation de Visual Studio (défini en tant que lecteur + chemin) ; inclut la barre oblique inverse de fin (\).
$(FrameworkDir) Le répertoire où le .NET Framework a été installé.
$(FrameworkSDKDir) Le répertoire où vous avez installé le .NET Framework. Le .NET Framework a peut-être été installé dans le cadre de Visual Studio ou séparément.
$(FrameworkVersion) La version du .NET Framework utilisée par Visual Studio. Combiné à $(FrameworkDir), chemin d’accès complet à la version du .NET Framework utilisé par Visual Studio.
$(FxCopDir) Chemin du fichier fxcop.cmd. Le fxcop.cmd fichier n’est pas installé dans toutes les éditions de Visual Studio.
$(IntDir) Chemin du répertoire spécifié pour les fichiers intermédiaires. S’il s’agit d’un chemin relatif, les fichiers intermédiaires sont ajoutés au répertoire du projet. Ce chemin doit avoir une barre oblique inverse de fin (\). Elle est résolue en valeur pour la propriété Directory intermédiaire. N’utilisez $(OutDir) pas pour définir cette propriété.
$(OutDir) Chemin du répertoire des fichiers de sortie. S’il s’agit d’un chemin relatif, les fichiers de sortie sont ajoutés au répertoire du projet. Ce chemin doit avoir une barre oblique inverse de fin (\). Elle est résolue en valeur pour la propriété Output Directory . N’utilisez $(IntDir) pas pour définir cette propriété.
$(Platform) Nom de la plateforme de projet actuelle, par exemple, « Win32 ».
$(PlatformShortName) Nom court de l’architecture actuelle, par exemple « x86 » ou « x64 ».
$(ProjectDir) Répertoire du projet (défini en tant que lecteur + chemin) ; inclut la barre oblique inverse de fin (\).
$(ProjectExt) L’extension de fichier du projet. Elle inclut le point (« . ») avant l’extension de fichier.
$(ProjectFileName) Le nom de fichier du projet (défini comme étant nom de base + extension de fichier).
$(ProjectName) Le nom de base du projet.
$(ProjectPath) Le nom du chemin absolu du projet (défini comme étant lecteur + chemin + nom de base + extension de fichier).
$(PublishDir) Emplacement de sortie de la cible de publication ; inclut la barre oblique inverse de fin (\). La valeur par défaut est le $(OutDir)app.publish\ dossier.
$(RemoteMachine) Définit sur la valeur de la propriété Remote Machine sur la page des propriétés du débogage. Pour plus d’informations, consultez Modification des paramètres de projet pour une configuration de débogage C/C++.
$(RootNameSpace) L’espace de noms, s’il y en a un, contenant l’application.
$(SolutionDir) Répertoire de la solution (défini en tant que lecteur + chemin) ; inclut la barre oblique inverse de fin (\). Défini uniquement quand une solution est générée dans l’IDE.
$(SolutionExt) L’extension de fichier de la solution. Elle inclut le point (« . ») avant l’extension de fichier. Défini uniquement quand une solution est générée dans l’IDE.
$(SolutionFileName) Le nom de fichier de la solution (défini comme étant nom de base + extension de fichier). Défini uniquement quand une solution est générée dans l’IDE.
$(SolutionName) Le nom de base de la solution. Défini uniquement quand une solution est générée dans l’IDE.
$(SolutionPath) Le nom du chemin absolu de la solution (défini comme étant lecteur + chemin + nom de base + extension de fichier). Défini uniquement quand une solution est générée dans l’IDE.
$(TargetDir) Répertoire du fichier de sortie principal de la build (défini en tant que lecteur + chemin) ; inclut la barre oblique inverse de fin (\).
$(TargetExt) L’extension de fichier du fichier de sortie principal pour la build. Elle inclut le point (« . ») avant l’extension de fichier.
$(TargetFileName) Le nom de fichier du fichier de sortie principal pour la build (défini comme étant nom de base + extension de fichier).
$(TargetName) Le nom de base du fichier de sortie principal pour la build.
$(TargetPath) Le nom du chemin absolu du fichier de sortie principal pour la build (défini comme étant lecteur + chemin + nom de base + extension de fichier).
$(VCInstallDir) Répertoire qui comprend le contenu C++ de votre installation de Visual Studio. Cette propriété contient la version de l’ensemble d’outils Microsoft C++ (MSVC) ciblé, qui peut être différent de celui de Visual Studio hôte. Par exemple, lors de la génération avec $(PlatformToolset) = v140, $(VCInstallDir) contient le chemin d’accès à l’installation de Visual Studio 2015.
$(VSInstallDir) Le répertoire où vous avez installé Visual Studio. Cette propriété contient la version de l’ensemble d’outils Visual Studio ciblé, qui peut être différente de celle du Visual Studio hôte. Par exemple, lors de la génération avec $(PlatformToolset) = v110, $(VSInstallDir) contient le chemin d’accès à l’installation de Visual Studio 2012.
$(WebDeployPath) Le chemin relatif à partir de la racine du déploiement auquel les sorties du projet appartiennent.
$(WebDeployRoot) Chemin absolu vers l’emplacement de <localhost>. Par exemple : c:\inetpub\wwwroot.

Macros obsolètes

Le système de génération pour C++ a été modifié de manière significative entre Visual Studio 2008 et Visual Studio 2010. De nombreuses macros utilisées dans les types de projet précédents ont été modifiées en nouvelles. Ces macros ne sont plus utilisées ou sont remplacées par une ou plusieurs propriétés équivalentes ou des valeurs de macro de métadonnées d’élément (%(item-name)). L’outil de migration peut mettre à jour les macros marquées « migrées ». Si un projet contenant la macro est migré de Visual Studio 2008 ou version antérieure vers Visual Studio 2010, Visual Studio convertit la macro en macro actuelle équivalente. Les versions ultérieures de Visual Studio ne peuvent pas convertir des projets Visual Studio 2008 et antérieur en nouveau type de projet. Vous devez convertir ces projets en deux temps ; tout d’abord, convertissez-les en Visual Studio 2010, puis convertissez le résultat en version récente de Visual Studio. Pour plus d’informations, consultez Vue d’ensemble des problèmes de mise à niveau potentiels.

Macro Description
$(InputDir) (Migré.) Répertoire du fichier d’entrée (défini en tant que lecteur + chemin) ; inclut la barre oblique inverse de fin (\). Si le projet est l’entrée, cette macro est équivalente à $(ProjectDir).
$(InputExt) (Migré.) Extension de fichier du fichier d’entrée. Elle inclut le point (« . ») avant l’extension de fichier. Si le projet est l’entrée, cette macro est équivalente à $(ProjectExt). Pour les fichiers sources, il est équivalent à %(Extension).
$(InputFileName) (Migré.) Nom de fichier du fichier d’entrée (défini comme nom de base + extension de fichier). Si le projet est l’entrée, cette macro est équivalente à $(ProjectFileName). Pour les fichiers sources, il est équivalent à %(Identity).
$(InputName) (Migré.) Nom de base du fichier d’entrée. Si le projet est l’entrée, cette macro est équivalente à $(ProjectName). Pour les fichiers sources, il est équivalent à %(Filename).
$(InputPath) (Migré.) Nom absolu du fichier d’entrée (défini en tant que lecteur + chemin d’accès + nom de base + extension de fichier). Si le projet est l’entrée, cette macro est équivalente à $(ProjectPath). Pour les fichiers sources, il est équivalent à %(FullPath).
$(ParentName) Nom de l’élément contenant cet élément de projet. Cette macro est le nom du dossier parent ou le nom du projet.
$(SafeInputName) Le nom du fichier sous forme de nom de classe valide, moins l’extension de fichier. Cette propriété n’a pas d’équivalent exact.
$(SafeParentName) Le nom du parent immédiat dans un format de nom valide. Par exemple, un formulaire est le parent d’un .resx fichier. Cette propriété n’a pas d’équivalent exact.
$(SafeRootNamespace) Nom de l’espace de noms dans lequel les Assistants de projet doivent ajouter du code. Ce nom d’espace de noms contient uniquement des caractères autorisés dans un identificateur C++ valide. Cette propriété n’a pas d’équivalent exact.

Voir aussi

Projets Visual Studio - C++
Guide du portage et de la mise à niveau de Visual C++
Vue d’ensemble des problèmes de mise à niveau potentiels
Métadonnées d’éléments connus MSBuild