MSBuild-Befehlszeilenreferenz

MSBuild.exe erstellt die angegebene Projekt- oder Projektmappendatei mit den festgelegten Optionen.

MSBuild.exe [Switches] [ProjectFile]

Argumente

Argument

Beschreibung

ProjectFile

Erstellt die angegebenen Ziele in der Projektdatei. Wenn keine Projektdatei angegeben ist, durchsucht MSBuild das aktuelle Arbeitsverzeichnis nach einer Dateinamenerweiterung, die mit "proj" endet, und verwendet die entsprechende Datei. Dieses Argument akzeptiert auch Visual Studio 2005-Projektmappendateien.

Schalter

Schalter

Beschreibung

/help

Zeigt Verwendungsinformationen an. /? oder /h können auch verwendet werden. Beispiele:

Msbuild.exe /?

/nologo

Blendet das Startbanner und die Copyrightmeldung aus.

/version

Zeigt nur die Versionsinformationen an. /Ver kann auch verwendet werden.

@file

Fügt Befehlszeileneinstellungen aus einer Textdatei ein. Geben Sie jede Antwortdatei einzeln an. Weitere Informationen finden Sie unter MSBuild-Antwortdateien.

/noautoresponse

Schließt die Datei MSBuild.rsp nicht automatisch ein. /noautorsp kann auch verwendet werden.

/target:targets

Erstellt die Ziele in diesem Projekt. Verwenden Sie ein Semikolon oder ein Komma als Trennzeichen für mehrere Ziele, oder geben Sie jedes Ziel einzeln an. /t kann auch verwendet werden. Beispiel:

/target:Resources;Compile

/property:name=value

Legt die Eigenschaften auf Projektebene fest oder überschreibt sie. Dabei ist name der Eigenschaftenname und value der Eigenschaftswert. Verwenden Sie ein Semikolon oder ein Komma als Trennzeichen für mehrere Eigenschaften, oder geben Sie jede Eigenschaft einzeln an. /p kann auch verwendet werden. Beispiel:

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

/logger:logger

Gibt die zu verwendende Protokollierung zum Protokollieren von Ereignissen aus MSBuild an. Wenn Sie mehrere Protokollierungen angeben möchten, geben Sie jede Protokollierung einzeln an.

Die Protokollierungssyntax lautet:

[LoggerClass,]LoggerAssembly[;LoggerParameters]

Die LoggerClass-Syntax lautet:

[PartialOrFullNamespace.]LoggerClassName

HinweisHinweis
Die Protokollierungsklasse muss nicht angegeben werden, wenn in der Assembly genau eine Protokollierung vorhanden ist.

Die LoggerAssembly-Syntax lautet:

{AssemblyName[,StrongName] | AssemblyFile}

Protokollierungsparameter sind optional und werden so an die Protokollierung übergeben, wie sie eingegeben werden. Beispiel:

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

/distributedlogger:<zentrale Protokollierung>*<Weiterleitungsprotokollierung>

Verwenden Sie diese Protokollierung, um Ereignisse von MSBuild zu protokollieren. Wenn Sie mehrere Protokollierungen angeben möchten, geben Sie jede Protokollierung einzeln an. (Kurzform: /dl)

Die <Protokollierungs>-Syntax lautet:

[<Protokollierungsklasse>,]<Protokollierungsassembly>[;< Protokollierungsparameter>]

Die Syntax der <Protokollierungsklasse> lautet:

[<teilweiser oder voller Namespace>.]<Protokollierungsklassenname>

Die Syntax der <Protokollierungsassembly> ist: {<Assemblyname>[,<starker Name>] | <Assemblydatei>}

Die <Protokollierungsparameter> sind optional und werden so an die Protokollierung übergeben, wie sie eingegeben werden. (Kurzform: /l)

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

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

/consoleloggerparameters:parameters

Gibt die Parameter an, die an die Konsolenprotokollierung übergeben werden. /clp kann auch verwendet werden. Die folgenden Parameter stehen zur Verfügung:

  • PerformanceSummary: Zeigt den Zeitaufwand für Aufgaben, Ziele und Projekte an.

  • NoSummary: Blendet die am Ende eines Builds angezeigte Fehler- und Warnungszusammenfassung aus.

  • NoItemAndPropertyList: Blendet die Liste der am Anfang jedes Projektbuilds in der diagnostic-Ausführlichkeitseinstellung angezeigten Elemente und Eigenschaften aus.

/verbosity:level

Zeigt den Umfang der Informationen im Buildprotokoll an. Einzelne Protokollierungen zeigen Ereignisse anhand des Ausführlichkeitsgrads an. Eine Protokollierung kann so konfiguriert werden, dass die Einstellung für den Ausführlichkeitsgrad ignoriert wird.

Die verfügbaren Ausführlichkeitsgrade lauten q[uiet], m[inimal], n[ormal], d[etailed] und diag[nostic]. /v kann auch verwendet werden. Beispiel:

/verbosity:quiet

/noconsolelogger

Deaktiviert die Standardkonsolenprotokollierung und protokolliert keine Ereignisse in der Konsole. /noconlog kann auch verwendet werden.

/validate:schema

Validiert die Projektdatei, und erstellt bei erfolgreicher Validierung das Projekt.

Überprüft das Projekt mit dem Standardschema, wenn schema nicht angegeben ist.

Überprüft das Projekt mit dem festgelegten Schema, wenn schema angegeben ist.

/maxcpucount:number

Gibt die Anzahl der Arbeitsprozesse an, die zum Build gehören. Beispiel: C:\Windows\WinFX\v3.5>msbuild.exe *.proj /maxcpucount:3. In diesem Beispiel wird MSBuild angewiesen, für den Build drei MSBuild.exe-Prozesse zu verwenden. Auf diese Weise können drei Projekte gleichzeitig erstellt werden. /m kann auch verwendet werden.

/ignoreprojectextensions:<Erweiterungen>

Liste mit Erweiterungen, die beim Festlegen der zu erstellenden Projektdatei ignoriert werden. Trennen Sie mehrere Erweiterungen durch ein Semikolon oder ein Komma. (Kurzform: /ignore) Beispiel: /ignoreprojectextensions:.vcproj,.sln

/fileLogger

Protokolliert die Buildausgabe in einer einzelnen Datei ("msbuild.log") im aktuellen Verzeichnis. Der Speicherort der Datei und anderer Parameter für fileLogger können durch Hinzufügen des Schalters "/fileLoggerParameters" festgelegt werden. (Kurzform: /fl)

/distributedFileLogger

Protokolliert die Buildausgabe in mehrere Protokolldateien, wobei eine Protokolldatei pro MSBuild-Knoten verwendet wird. Der ursprüngliche Speicherort für diese Dateien ist das aktuelle Verzeichnis. Standardmäßig werden die Dateien "MSBuild<Knoten-ID>.log" genannt. Der Speicherort der Dateien und Parameter für fileLogger können durch Hinzufügen des Schalters "/fileLoggerParameters" festgelegt werden.

Wenn ein Protokolldateiname durch den den fileLoggerParameters-Schalter festgelegt wurde, verwendet die verteilte Protokollierung fileName als Vorlage und erstellt für jeden Knoten eine Protokolldatei, indem sie die Knoten-ID an fileName anhängt.

/fileloggerparameters:<Parameter>

Gibt die Parameter für die Dateiprotokollierung und verteilte Dateiprotokollierung an. (Kurzform: /flp)

Bis zu zehn Datei-Protokollierungen können Sie anhand des Parameters mit einer Ziffer verwenden, die die Protokollierung identifiziert. Um beispielsweise separate Protokolldateien für Warnungen und Fehler zu generieren, verwenden Sie /flp1:logfile=errors.txt;errorsonly /flp2:logfile=warnings.txt;warningsonly

Folgende Parameter sind verfügbar:

LogFile - Der Pfad zur Protokolldatei, in die das Buildprotokoll geschrieben wird. Er wird von der verteilten Dateiprotokollierung als Präfix für die Protokolldateinamen verwendet.

Append - Bestimmt, ob das Buildprotokoll angefügt wird oder ob die Protokolldatei überschrieben wird. Wenn Sie den Schalter aktivieren, wird das Buildprotokoll an die Protokolldatei angefügt. Wenn Sie den Schalter nicht aktivieren, wird der Inhalt einer vorhandenen Protokolldatei überschrieben. Standardmäßig wird nichts an die Protokolldatei angefügt.

Ausführlichkeitsgrad - Überschreibt die ausführliche Standardausführlichkeitsgradeinstellung.

Encoding - Legt die Codierung für die Datei fest, z. B. UTF-8.

Die Konsolenprotokollierungsparameter können ebenfalls verwendet werden. Beispiel: /fileLoggerParameters:LogFile=MyLog.log;Append; Verbosity=diagnostic;Encoding=UTF-8

/toolsversion:version

Gibt die Version des Toolsets an, die zum Erstellen des Projekts verwendet wird. Mit diesem Befehl können Sie zum Erstellen eines Projekts eine andere als die im Project-Element (MSBuild) festgelegte Version verwenden. Beispiel:

C:\Windows\WinFX\v3.5>msbuild.exe *.proj /ToolsVersion:3.5 /p:Configuration=Debug

Gültige Werte für version sind 2.0, 3.0 und 3.5. Weitere Informationen zu Toolsets finden Sie unter Builderstellung für bestimmte Versionen von .NET Framework.

/nodeReuse:<Parameter>

Aktiviert oder deaktiviert die erneute Verwendung von MSBuild-Knoten. Die Parameter lauten:

True - Knoten bleiben nach dem Abschluss des Builds erhalten und werden von nachfolgenden Builds wiederverwendet.

False - Knoten bleiben nach dem Abschluss des Builds nicht erhalten. (Kurzform: /nr) Beispiel: /nr:true

Hinweise

Wenn Parameter an die Standardkonsolenprotokollierung übergeben werden sollen, deaktivieren Sie diese mit /noconsolelogger, und geben Sie sie anschließend mit der /logger-Syntax an. Verwenden Sie beispielsweise die folgende Befehlszeile zum Anzeigen der Leistungszusammenfassung, die in der Regel nur mit dem Diagnoseausführlichkeitsgrad angezeigt wird:

msbuild myproject.csproj /noconsolelogger /l:ConsoleLogger,Microsoft.Build.Engine.dll;performancesummary

Beispiel

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

MSBuild.exe MyProject.proj /t:rebuild

Mit MSBuild.exe können komplizierte Builds ausgeführt werden. Sie können beispielsweise bestimmte Ziele von bestimmten Projekten in einer Projektmappe erstellen. Im folgenden Beispiel wird das NotInSolutionFolder-Projekt neu erstellt und das InSolutionFolder-Projekt im NewFolder-Projektmappenordner gelöscht.

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

Siehe auch

Weitere Ressourcen

MSBuild-Referenz