MSBuild-Befehlszeilenreferenz

Wenn Sie mithilfe von MSBUILD.EXE ein Projekt oder eine Projektmappendatei erstellen, können Sie diverse Schalter verwenden, um verschiedene Aspekte des Prozesses festzulegen.

MSBuild.exe [Switches] [ProjectFile]

Argumente

Argument

Beschreibung

ProjectFile

Erstellt die Ziele in der von Ihnen angegebenen Projektdatei. Wenn Sie keine Projektdatei angeben, durchsucht MSBuild das aktuelle Arbeitsverzeichnis nach einer Dateinamenerweiterung, die mit "proj" endet, und verwendet diese. Sie können hier auch eine Visual Studio-Projektmappendatei als Argument angeben.

Schalter

Schalter

Kurzform

Beschreibung

/help

/? oder /h

Zeigt Nutzungsinformationen an. Der folgende Befehl ist ein Beispiel:

msbuild.exe /?

/detailedsummary

/ds

Zeigt am Ende des Buildprotokolls ausführliche Informationen zu den erstellten Konfigurationen und deren Planung in Knoten an.

/ignoreprojectextensions: extensions

/ignore: extensions

Ignoriert beim Bestimmen der zu erstellenden Projektdatei die angegebenen Erweiterungen. Mehrere Erweiterungen werden mit einem Semikolon oder einem Komma getrennt, wie im folgenden Beispiel gezeigt:

/ignoreprojectextensions:.vcproj,.sln

/maxcpucount[:number]

/m[:number]

Gibt die maximale Anzahl gleichzeitiger Prozesse beim Buildvorgang an. Wenn Sie diesen Schalter nicht angeben, wird der Standardwert 1 verwendet. Wenn Sie diesen Schalter ohne Angabe eines Werts verwenden, nutzt MSBuild alle Prozessoren des Computers. Weitere Informationen finden Sie unter Paralleles Erstellen von mehreren Projekten mit MSBuild.

Im folgenden Beispiel wird MSBuild angewiesen, drei MSBuild-Prozesse für Buildvorgänge zu nutzen, sodass drei Projekte gleichzeitig erstellt werden können:

msbuild myproject.proj /maxcpucount:3

/noautoresponse

/noautorsp

Es werden keine MSBUILD.RSP-Dateien automatisch eingeschlossen.

/nodeReuse:value

/nr:value

Aktiviert oder deaktiviert die Wiederverwendung von MSBuild-Knoten. Sie können folgende Werte angeben:

  • True. Nach Abschluss des Buildvorgangs bleiben die Knoten bestehen, sodass sie von nachfolgenden Buildvorgängen genutzt werden können (Standardeinstellung).

  • False. Nach Abschluss des Buildvorgangs bleiben die Knoten nicht bestehen.

Ein Knoten entspricht einem Projekt, das ausgeführt wird. Wenn Sie den Schalter /maxcpucount angeben, können mehrere Knoten gleichzeitig ausgeführt werden.

/nologo

Unterdrückt die Anzeige von Startbanner und Copyrightmeldung.

/preprocess[:filepath]

/pp[:filepath]

Erstellt eine einzelne, aggregierte Projektdatei durch Einbeziehen ("Inlining") sämtlicher Dateien, die während eines Builds importiert werden, unter Angabe ihrer Grenzen. Mithilfe dieses Schalters können Sie leichter feststellen, welche Dateien importiert werden, woher diese Dateien importiert werden und welche Dateien an dem Buildvorgang beteiligt sind. Wenn Sie diesen Schalter verwenden, wird das Projekt nicht erstellt.

Wenn Sie einen filepath angeben, wird die aggregierte Projektdatei in die Datei ausgegeben. Andernfalls wird die Ausgabe im Konsolenfenster angezeigt.

Wie Sie mithilfe des Import-Elements eine Projektdatei in eine andere Projektdatei einfügen können, wird unter Import-Element (MSBuild) und Gewusst wie: Verwenden eines Ziels in mehreren Projektdateien erklärt.

/property:name=value

/p:name=value

Dient zum Festlegen oder Überschreiben der angegebenen Eigenschaften auf Projektebene. Dabei ist name der Name und value der Wert der Eigenschaft. Geben Sie jede Eigenschaft einzeln an oder verwenden Sie ein Semikolon oder ein Komma, um mehrere Eigenschaften zu trennen (siehe Beispiel):

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

/target:targets

/t:targets

Erstellt die angegebenen Ziele im Projekt. Geben Sie jedes Ziel einzeln an oder verwenden Sie ein Semikolon oder ein Komma, um mehrere Ziele zu trennen (siehe Beispiel):

/target:Resources;Compile

Wenn Sie über diesen Schalter Ziele angeben, werden diese anstelle der im DefaultTargets-Attribut in der Projektdatei angegebenen Ziele ausgeführt. Weitere Informationen finden Sie unter Buildreihenfolge für Ziele und Gewusst wie: Angeben des zuerst zu erstellenden Ziels.

Als Ziel wird eine Gruppe von Aufgaben bezeichnet. Weitere Informationen finden Sie unter MSBuild-Ziele.

/toolsversion:version

/tv:version

Gibt die Version des Toolsets an, mit dem das Projekt erstellt werden soll, wie zum Beispiel: /toolsversion:3.5

Wenn Sie diesen Schalter verwenden, können Sie ein Projekt mit einer anderen Version als der im Project-Element (MSBuild) festgelegten erstellen. Weitere Informationen finden Sie unter Überschreiben von ToolsVersion-Einstellungen.

Bei MSBuild 4.5 können Sie für version die folgenden Werte angeben: 2.0, 3.5 und 4.0. Wenn Sie 4.0 angeben, gibt die Buildeigenschaft VisualStudioVersion an, welches Unter-Toolset verwendet werden soll. Weitere Informationen finden Sie im Abschnitt zu Unter-Toolsets unter MSBuild-Toolset (ToolsVersion).

Ein Toolset besteht aus Aufgaben, Zielen und Tools, die beim Erstellen einer Anwendung verwendet werden. Zu den Tools zählen Compiler wie "csc.exe" und "vbc.exe". Weitere Informationen zu Toolsets finden Sie unter MSBuild-Toolset (ToolsVersion), Standardmäßige und benutzerdefinierte Toolsetkonfigurationen und Übersicht über die Festlegung von Zielversionen mit MSBuild.

Hinweis

Die Toolsetversion ist nicht das gleiche wie das Zielframework – dieses ist die Version von .NET Framework, auf der das zu erstellende Projekt ausgeführt werden soll.Weitere Informationen finden Sie unter MSBuild-Zielframework und -Zielplattform.

/validate:[schema]

/val[schema]

Überprüft die Projektdatei und erstellt bei erfolgreicher Überprüfung das Projekt.

Wenn Sie schema nicht angeben, wird das Projekt anhand des Standardschemas überprüft.

Wenn Sie schema angeben, wird das Projekt anhand des angegebenen Schemas überprüft.

Die folgende Einstellung ist ein Beispiel: /validate:MyExtendedBuildSchema.xsd

/verbosity:level

/v:level

Gibt den Umfang an Informationen an, die im Buildprotokoll angezeigt werden sollen. Jede Protokollierung zeigt Ereignisse gemäß des Ausführlichkeitsgrads an, den Sie für diese Protokollierung festlegen.

Für den Ausführlichkeitsgrad können Sie die folgenden Werte angeben: q[uiet], m[inimal], n[ormal], d[etailed] und diag[nostic].

Die folgende Einstellung ist ein Beispiel: /verbosity:quiet

/version

/ver

Zeigt nur Versionsinformationen an. Das Projekt wird nicht erstellt.

@file

Fügt Befehlszeilenschalter aus einer Textdatei ein. Wenn Sie mehrere Dateien haben, müssen Sie diese separat angeben. Weitere Informationen finden Sie unter MSBuild-Antwortdateien.

Schalter für Protokollierungen

Schalter

Kurzform

Beschreibung

/consoleloggerparameters:

parameters

/clp:parameters

Übergibt die angegebenen Parameter an die Konsolenprotokollierung, die Buildinformationen im Konsolenfenster anzeigt. Sie können die folgenden Parameter angeben:

  • PerformanceSummary. Zeigt die Zeitdauer bei der Arbeit an Aufgaben, Zielen und Projekten an.

  • Summary. Zeigt am Ende eine Zusammenfassung zu aufgetretenen Fehlern und Warnungen an.

  • NoSummary. Am Ende wird keine Zusammenfassung zu aufgetretenen Fehlern und Warnungen angezeigt.

  • ErrorsOnly. Nur Fehler werden angezeigt.

  • WarningsOnly. Nur Warnungen werden angezeigt.

  • NoItemAndPropertyList. Unterdrückt die Anzeige der Liste von Elementen und Eigenschaften, die zu Beginn jedes Projekts angezeigt wird, wenn der Ausführlichkeitsgrad auf diagnostic festgelegt ist.

  • ShowCommandLine. Zeigt TaskCommandLineEvent-Meldungen an.

  • ShowTimestamp. Stellt jeder Meldung den zugehörigen Zeitstempel voran.

  • ShowEventId. Zeigt zu jedem Ereignis vom Typ "Gestartet" und "Abgeschlossen" sowie zu jeder Meldung die Ereignis-ID an.

  • ForceNoAlign. Hierbei wird der Text nicht der Größe des Konsolenpuffers angeglichen.

  • DisableConsoleColor. Verwendet bei allen Protokollierungsmeldungen die Standardkonsolenfarben.

  • DisableMPLogging. Deaktiviert bei Ausführung im Einzelprozessormodus das Multiprozessor-Protokollierungsformat der Ausgabe.

  • EnableMPLogging. Aktiviert das Multiprozessor-Protokollierungsformat auch bei Ausführung im Einzelprozessormodus. Dieses Protokollierungsformat ist standardmäßig aktiviert.

  • Verbosity. Überschreibt die /verbosity-Einstellung für diese Protokollierung.

Mehrere Parameter sind mit einem Semikolon oder Komma zu trennen, wie im folgenden Beispiel gezeigt:

/consoleloggerparameters:PerformanceSummary;NoSummary /verbosity:minimal

/distributedFileLogger

/dfl

Protokolliert die Buildausgabe jedes MSBuild-Knotens in dessen eigene Datei. In der Standardeinstellung werden diese Dateien im aktuellen Verzeichnis gespeichert. Die Namen der Dateien lauten standardmäßig "MSBuildKnotenId.log". Sie können den /fileLoggerParameters-Schalter verwenden, um den Speicherort der Dateien und andere Parameter für "fileLogger" anzugeben.

Wenn Sie eine Protokolldatei mithilfe des /fileLoggerParameters-Schalters benennen, wird die verteilte Protokollierung diesen Namen als Vorlage verwenden und ihm die Knoten-ID anhängen, wenn sie eine Protokolldatei für jeden Knoten erstellt.

/distributedlogger:

central logger*

forwarding logger

/dl:central logger*forwarding logger

Protokolliert Ereignisse von MSBuild und hängt an jeden Knoten eine andere Protokollierungsinstanz an. Wenn Sie mehrere Protokollierungen angeben möchten, müssen Sie jede Protokollierung einzeln angeben.

Zum Angeben einer Protokollierung verwenden Sie die Protokollierungssyntax. Informationen zur Protokollierungssyntax finden Sie weiter unten beim Schalter /logger.

Das folgende Beispiel zeigt, wie dieser Schalter verwendet wird:

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

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

/fileLogger

[Nummer]

/fl[number]

Protokolliert die Buildausgabe in einer einzelnen Datei im aktuellen Verzeichnis. Wenn Sie number nicht angeben, erhält die Ausgabedatei den Namen MSBUILD.LOG. Wenn Sie number angeben, erhält die Ausgabedatei den Namen MSBUILDn.LOG (wobei "n" für die in number angegebene Nummer steht). Number kann eine Ziffer von 1 bis 9 sein.

Sie können den Schalter /fileLoggerParameters verwenden, um den Speicherort der Datei und andere Parameter für "fileLogger" anzugeben.

/fileloggerparameters:[Zahl]

parameters

/flp:[ number] parameters

Dient zur Angabe aller sonstigen Parameter für die Dateiprotokollierung und die verteilte Dateiprotokollierung. Bei Angabe dieses Schalters wird davon ausgegangen, dass der zugehörige /filelogger[number]-Schalter vorhanden ist. Number kann eine Ziffer von 1 bis 9 sein.

Sie können alle Parameter verwenden, die für /consoleloggerparameters aufgeführt sind. Sie können auch einen oder mehrere der folgenden Parameter verwenden:

  • LogFile. Gibt den Pfad zu der Protokolldatei an, in die das Buildprotokoll geschrieben wird. Die verteilte Dateiprotokollierung stellt diesen Pfad den Namen seiner Protokolldateien voran.

  • Append. Bestimmt, ob das Buildprotokoll an die Protokolldatei angefügt wird oder diese überschreibt. Wenn Sie den Schalter setzen, wird das Buildprotokoll an die Protokolldatei angefügt. Wenn der Schalter nicht angegeben ist, wird der Inhalt einer vorhandenen Protokolldatei überschrieben.

    Wenn Sie den "append"-Schalter angeben – wobei es keine Rolle spielt, ob Sie ihn auf "true" oder "false" stellen – wird das Protokoll angefügt. Wenn der Schalter nicht vorhanden ist, wird das Protokoll überschrieben.

    In diesem Fall wird die Datei überschrieben: msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log

    In diesem Fall wird die Datei angefügt: msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log;append=true

    In diesem Fall wird die Datei angefügt: msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log;append=false 

  • Encoding. Gibt die Codierung für die Datei an (z. B. UTF-8, Unicode oder ASCII).

Das folgende Beispiel generiert separate Protokolldateien für Warnungen und Fehler:

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

Die folgenden Beispiele zeigen weitere Möglichkeiten:

/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

Gibt die Protokollierung an, mit der Ereignisse aus MSBuild protokolliert werden sollen. Wenn Sie mehrere Protokollierungen angeben möchten, müssen Sie jede Protokollierung einzeln angeben.

Verwenden Sie bei logger die folgende Syntax: [LoggerClass,]LoggerAssembly[;LoggerParameters]

Verwenden Sie bei LoggerClass die folgende Syntax: [PartialOrFullNamespace.]LoggerClassName

Wenn die Assembly genau eine Protokollierung enthält, muss die Protokollierungsklasse nicht angegeben werden.

Verwenden Sie bei LoggerAssembly die folgende Syntax: {AssemblyName[,StrongName] | AssemblyFile}

Protokollierungsparameter sind optional und werden so an die Protokollierung übergeben, wie Sie sie eingegeben würden.

In den folgenden Beispielen wird der /logger-Schalter verwendet.

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

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

/noconsolelogger

/noconlog

Deaktiviert die standardmäßige Konsolenprotokollierung und protokolliert keine Ereignisse in der Konsole.

Beispiel

Im folgenden Beispiel wird das Ziel rebuild des Projekts MyProject.proj erstellt.

MSBuild.exe MyProject.proj /t:rebuild

Mit MSBUILD.EXE sind auch komplexere Builds möglich. So können Sie das Tool zum Beispiel verwenden, um bestimmte Ziele von bestimmten Projekten in einer Projektmappe zu erstellen. Im folgenden Beispiel wird das Projekt NotInSolutionFolder neu erstellt, und das Projekt InSolutionFolder im NewFolder-Projektmappenordner wird gelöscht.

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

Siehe auch

Referenz

Gemeinsame MSBuild-Projekteigenschaften

Weitere Ressourcen

MSBuild-Referenz