Partager via


Référence de la ligne de commande MSBuild

Quand vous utilisez MSBuild.exe pour générer un fichier projet ou solution, vous pouvez inclure plusieurs commutateurs pour définir différents aspects du processus.

MSBuild.exe [Switches] [ProjectFile]

Arguments

Argument

Description

ProjectFile

Génère les cibles dans le fichier projet que vous spécifiez. Si vous ne spécifiez pas de fichier projet, MSBuild recherche dans le répertoire de travail actif une extension de nom de fichier se terminant par « proj » et utilise ce fichier. Vous pouvez aussi spécifier un fichier solution Visual Studio pour cet argument.

Commutateurs

Commutateur

Forme abrégée

Description

/help

/? ou /h

Affiche des informations sur l'utilisation. La commande suivante est un exemple :

msbuild.exe /?

/detailedsummary

/ds

Affiche des informations détaillées à la fin du journal de génération sur les configurations qui ont été générées et sur la façon dont elles ont été planifiées sur les nœuds.

/ignoreprojectextensions:extensions

/ignore: extensions

Ignore les extensions spécifiées au moment de déterminer quel fichier projet générer. Utilisez un point-virgule ou une virgule pour séparer les différentes extensions, comme dans l'exemple suivant :

/ignoreprojectextensions:.vcproj,.sln

/maxcpucount[:number]

/m[:number]

Spécifie le nombre maximal de processus simultanés à utiliser au moment de la génération. Si vous n'incluez pas ce commutateur, la valeur par défaut est 1. Si vous incluez ce commutateur sans spécifier de valeur, MSBuild utilise le nombre de processeurs dont est équipé l'ordinateur. Pour plus d'informations, consultez Génération parallèle de plusieurs projets avec MSBuild.

Dans l'exemple suivant, MSBuild a pour instruction de générer en utilisant trois processus MSBuild, ce qui permet de générer simultanément trois projets :

msbuild myproject.proj /maxcpucount:3

/noautoresponse

/noautorsp

N'inclut automatiquement aucun fichier MSBuild.rsp.

/nodeReuse:value

/nr:value

Active ou désactive la réutilisation de nœuds MSBuild. Vous pouvez indiquer les valeurs suivantes :

  • True. Les nœuds sont conservés à l'issue de la génération pour permettre aux générations suivantes de les utiliser (par défaut).

  • False. Les nœuds ne sont pas conservés à l'issue de la génération.

Un nœud correspond à un projet en cours d'exécution. Si vous incluez le commutateur /maxcpucount, plusieurs nœuds peuvent s'exécuter simultanément.

/nologo

N'affiche pas la bannière de démarrage ni le message de copyright.

/preprocess[:filepath]

/pp[:filepath]

Crée un fichier projet agrégé unique en incorporant tous les fichiers qui seraient importés lors d'une génération, avec une indication de leurs limites. Vous pouvez utiliser ce commutateur pour identifier plus facilement les fichiers importés, leur emplacement d'origine, ainsi que les fichiers qui contribuent à la génération. Quand ce commutateur est utilisé, le projet n'est pas généré.

Si vous spécifiez un filepath, le fichier projet agrégé est généré dans le fichier. Sinon, la sortie s'affiche dans la fenêtre de console.

Pour plus d'informations sur l'insertion d'un fichier projet dans un autre fichier projet à l'aide de l'élément Import, consultez Import, élément (MSBuild) et Comment : utiliser la même cible dans plusieurs fichiers projet.

/property:name=value

/p:name=value

Définit ou substitue les propriétés de niveau projet spécifiées, name correspondant au nom de la propriété et value à la valeur de la propriété. Spécifiez chaque propriété séparément ou utilisez un point-virgule ou une virgule pour séparer plusieurs propriétés, comme dans l'exemple suivant :

/property:WarningLevel=2;OutDir=bin\Debug

/target:targets

/t:targets

Génère les cibles spécifiées dans le projet. Spécifiez chaque cible séparément ou utilisez un point-virgule ou une virgule pour séparer plusieurs cibles, comme dans l'exemple suivant :

/target:Resources;Compile

Si vous spécifiez des cibles à l'aide de ce commutateur, elles sont exécutées à la place des cibles définies dans l'attribut DefaultTargets du fichier projet. Pour plus d’informations, consultez Ordre de génération des cibles et Comment : spécifier la cible à générer en premier.

Une cible est un groupe de tâches. Pour plus d'informations, consultez Cibles de MSBuild.

/toolsversion:version

/tv:version

Spécifie la version de l'ensemble d'outils à utiliser pour générer le projet, comme dans l'exemple suivant :/toolsversion:3.5

À l'aide de ce commutateur, vous pouvez générer un projet et spécifier une version différente de celle spécifiée dans Project, élément (MSBuild). Pour plus d'informations, consultez Substitution des paramètres ToolsVersion.

Pour MSBuild 4.5, vous pouvez attribuer à version les valeurs suivantes : 2.0, 3.5 et 4.0. Si vous spécifiez 4.0, la propriété de build VisualStudioVersion désigne le sous-ensemble d'outils à utiliser. Pour plus d'informations, consultez la section Sous-ensemble d'outils de la page Ensemble d'outils MSBuild (ToolsVersion).

Un ensemble d'outils se compose des tâches, des cibles et des outils utilisés pour générer une application. Les outils incluent des compilateurs tels que csc.exe et vbc.exe. Pour plus d'informations sur les ensembles d'outils, consultez Ensemble d'outils MSBuild (ToolsVersion), Configurations standard et personnalisée de l'ensemble d'outils et Vue d'ensemble du multi-ciblage MSBuild.

Notes

La version de l'ensemble d'outils n'est pas la même que l'infrastructure cible, qui est la version de .NET Framework sur laquelle un projet généré doit s'exécuter.Pour plus d'informations, consultez Framework cible et plate-forme cible (MSBuild).

/validate:[schema]

/val[schema]

Valide le fichier projet et, si la validation réussit, génère le projet.

Si vous ne spécifiez pas schema, le projet est validé par rapport au schéma par défaut.

Si vous spécifiez schema, le projet est validé par rapport au schéma que vous spécifiez.

Voici un exemple de paramétrage : /validate:MyExtendedBuildSchema.xsd

/verbosity:level

/v:level

Spécifie la quantité d'informations à afficher dans le journal de génération. Chaque enregistreur d'événements affiche les événements en fonction du niveau de commentaires que vous définissez pour l'enregistreur d'événements en question.

Vous pouvez spécifier les niveaux de commentaires suivantes : q[uiet], m[inimal], n[ormal], d[etailed] et diag[nostic].

Voici un exemple de paramétrage : /verbosity:quiet

/version

/ver

Affiche uniquement les informations de version. Le projet n'est pas généré.

@file

Insère des commutateurs de ligne de commande à partir d'un fichier texte. Si vous avez plusieurs fichiers, spécifiez-les séparément. Pour plus d'informations, consultez Fichiers réponse MSBuild.

Commutateurs pour les journaux

Commutateur

Forme abrégée

Description

/consoleloggerparameters:

parameters

/clp:parameters

Passe les paramètres que vous spécifiez à l'enregistreur d'événements de console, qui affiche les informations de build dans la fenêtre de console. Vous pouvez spécifier les paramètres suivants :

  • PerformanceSummary : affiche le temps consacré aux tâches, cibles et projets.

  • Summary : affiche le résumé des erreurs et avertissements à la fin.

  • NoSummary : n'affiche pas le résumé des erreurs et avertissements à la fin.

  • ErrorsOnly : affiche uniquement les erreurs.

  • WarningsOnly : affiche uniquement les avertissements.

  • NoItemAndPropertyList : n'affiche pas la liste des éléments et des propriétés qui apparaîtrait au début de chaque génération de projet si le niveau de commentaires défini était diagnostic.

  • ShowCommandLine : affiche les messages TaskCommandLineEvent.

  • ShowTimestamp : affiche l'horodatage sous forme de préfixe des messages.

  • ShowEventId : affiche l'ID d'événement pour chaque message et événement (démarré et terminé).

  • ForceNoAlign : n'adapte pas le texte à la taille de la mémoire tampon de la console.

  • DisableConsoleColor : utilise les couleurs de console par défaut pour tous les messages de journalisation.

  • DisableMPLogging : désactive le style de journalisation multiprocesseur de la sortie lors d'une exécution en mode non multiprocesseur.

  • EnableMPLogging : active le style de journalisation multiprocesseur même lors d'une exécution en mode non multiprocesseur. Ce style de journalisation est activé par défaut.

  • Verbosity : substitue le paramètre /verbosity de cet enregistreur d'événements.

Utilisez un point-virgule ou une virgule pour séparer plusieurs paramètres, comme dans l'exemple suivant :

/consoleloggerparameters:PerformanceSummary;NoSummary /verbosity:minimal

/distributedFileLogger

/dfl

consigne la sortie de génération de chaque nœud MSBuild dans son propre fichier. L'emplacement initial de ces fichiers est le répertoire actif. Par défaut, les fichiers sont nommés « MSBuildID_nœud.log ». Vous pouvez utiliser le commutateur /fileLoggerParameters pour spécifier l'emplacement des fichiers et d'autres paramètres pour l'enregistreur d'événements des fichiers.

Si vous nommez un fichier journal à l'aide du commutateur /fileLoggerParameters, l'enregistreur d'événements distribué utilise ce nom comme modèle et y ajoute l'ID de nœud au moment de créer un fichier journal pour chaque nœud.

/distributedlogger:

central logger*

forwarding logger

/dl:central logger*forwarding logger

Consigne les événements de MSBuild, en joignant une instance d'enregistreur d'événements différente à chaque nœud. Pour spécifier plusieurs enregistreurs d'événements, spécifiez-les séparément.

Pour spécifiez un enregistreur d'événements, utilisez la syntaxe appropriée. Pour plus d'informations sur la syntaxe des enregistreurs d'événements, consultez le commutateur /logger ci-dessous.

Les exemples suivants montrent comment utiliser ce commutateur :

/dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral

/dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll

/fileLogger

[number]

/fl[number]

Consigne la sortie de génération dans un fichier unique dans le répertoire actif. Si vous ne spécifiez pas number, le fichier de sortie est nommé msbuild.log. Si vous spécifiez number, le fichier de sortie est nommé msbuildn.log, n correspondant à number. Number peut être un chiffre compris entre 1 et 9.

Vous pouvez utiliser le commutateur /fileLoggerParameters pour spécifier l'emplacement du fichier et d'autres paramètres pour l'enregistreur d'événements des fichiers.

/fileloggerparameters:[number]

parameters

/flp:[ number]parameters

Spécifie les paramètres supplémentaires de l'enregistreur d'événements des fichiers et de l'enregistreur d'événements des fichiers distribué. La présence de ce commutateur implique la présence du commutateur /filelogger[number] correspondant. Number peut être un chiffre compris entre 1 et 9.

Vous pouvez utiliser tous les paramètres répertoriés pour /consoleloggerparameters. Vous pouvez aussi utiliser un ou plusieurs des paramètres suivants :

  • LogFile : chemin d'accès au fichier journal dans lequel le journal de génération est écrit. L'enregistreur d'événements des fichiers distribué accole en préfixe ce chemin d'accès au nom de ses fichiers journaux.

  • Append : détermine si le journal de génération est ajouté au fichier journal ou s'il le remplace. Quand vous définissez le commutateur, le journal de génération est ajouté au fichier journal. En l'absence du commutateur, le contenu du fichier journal existant est remplacé, le cas échéant.

    Si vous incluez le commutateur append, le journal est ajouté, quelle que soit la valeur que vous lui avez attribuée (true ou false). Si vous n'incluez pas le commutateur append, le journal est remplacé.

    Dans ce cas, le fichier est remplacé :msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log

    Dans ce cas, le fichier est ajouté :msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log;append=true

    Dans ce cas, le fichier est ajouté :msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log;append=false 

  • Encoding : spécifie l'encodage pour le fichier (par exemple, UTF-8, Unicode ou ASCII).

L'exemple suivant génère des fichiers journaux distincts pour les avertissements et les erreurs :

/flp1:logfile=errors.txt;errorsonly /flp2:logfile=warnings.txt;warningsonly

Les exemples suivants montrent d'autres possibilités :

/fileLoggerParameters:LogFile=MyLog.log;Append; Verbosity=diagnostic;Encoding=UTF-8

/flp:Summary;Verbosity=minimal;LogFile=msbuild.sum

/flp1:warningsonly;logfile=msbuild.wrn

/flp2:errorsonly;logfile=msbuild.err

/logger:

logger

/l:logger

Spécifie l'enregistreur d'événements à utiliser pour consigner les événements de MSBuild. Pour spécifier plusieurs enregistreurs d'événements, spécifiez-les séparément.

Utilisez la syntaxe suivante pour logger: [LoggerClass,]LoggerAssembly[;LoggerParameters]

Utilisez la syntaxe suivante pour LoggerClass: [PartialOrFullNamespace.]LoggerClassName

Vous n'êtes pas obligé de spécifier la classe d'enregistreur d'événements si l'assembly contient exactement un enregistreur d'événements.

Utilisez la syntaxe suivante pour LoggerAssembly: {AssemblyName[,StrongName] | AssemblyFile}

Les paramètres d'enregistreur d'événements sont facultatifs et sont passés à l'enregistreur d'événements au moment même où vous les entrez.

Les exemples suivants utilisent le commutateur /logger.

/logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral

/logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML

/noconsolelogger

/noconlog

Désactive l'enregistreur d'événements de console par défaut et ne consigne pas les événements dans la console.

Exemple

L'exemple suivant génère la cible rebuild du projet MyProject.proj.

MSBuild.exe MyProject.proj /t:rebuild

Vous pouvez utiliser MSBuild.exe pour effectuer des générations plus complexes. Par exemple, vous pouvez l'utiliser pour générer des cibles spécifiques de certains projets dans le cadre d'une solution. L'exemple suivant régénère le projet NotInSolutionFolder et nettoie le projet InSolutionFolder qui se trouve dans le dossier de solution NewFolder.

msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean

Voir aussi

Référence

Propriétés communes des projets MSBuild

Autres ressources

Référence MSBuild