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 :
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 :
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 :
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