MSBuild@1 – MSBuild v1-Aufgabe
Verwenden Sie diese Aufgabe, um mit MSBuild zu erstellen.
Syntax
# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
inputs:
solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
#msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
#msbuildVersion: 'latest' # 'latest' | '17.0' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
#msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
#msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild.
#platform: # string. Platform.
#configuration: # string. Configuration.
#msbuildArguments: # string. MSBuild Arguments.
#clean: false # boolean. Clean. Default: false.
# Advanced
#maximumCpuCount: false # boolean. Build in Parallel. Default: false.
#restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
#logProjectEvents: false # boolean. Record Project Details. Default: false.
#createLogFile: false # boolean. Create Log File. Default: false.
#logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.
# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
inputs:
solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
#msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
#msbuildVersion: 'latest' # 'latest' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
#msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
#msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild.
#platform: # string. Platform.
#configuration: # string. Configuration.
#msbuildArguments: # string. MSBuild Arguments.
#clean: false # boolean. Clean. Default: false.
# Advanced
#maximumCpuCount: false # boolean. Build in Parallel. Default: false.
#restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
#logProjectEvents: false # boolean. Record Project Details. Default: false.
#createLogFile: false # boolean. Create Log File. Default: false.
#logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.
Eingänge
solution
-
Project
string
. Erforderlich. Standardwert: **/*.sln
.
Wenn Sie mehrere Projekte erstellen möchten, geben Sie Suchkriterien an. Sie können einen Platzhalter mit einem Ordner (*) und rekursive Platzhalter (**) verwenden. Beispielsweise sucht **.*proj
nach allen MSBuild-Projektdateien (.*proj
) in allen Unterverzeichnissen.
Stellen Sie sicher, dass die von Ihnen angegebenen Projekte von dieser Buildpipeline heruntergeladen werden. Auf der Registerkarte "Repository":
- Wenn Sie TFVC verwenden, stellen Sie sicher, dass das Projekt ein untergeordnetes Element einer der Zuordnungen auf der Registerkarte "Repository" ist.
- Wenn Sie Git verwenden, stellen Sie sicher, dass sich das Projekt oder Projekt in Ihrem Git-Repository befindet, in einer Verzweigung, die Sie erstellen.
Tipp
Wenn Sie eine Lösung erstellen, wird empfohlen, die Visual Studio-Buildaufgabe anstelle der MSBuild-Aufgabe zu verwenden.
msbuildLocationMethod
-
MSBuild-
string
. Zulässige Werte: version
, location
(Speicherort angeben). Standardwert: version
.
msbuildVersion
-
MSBuild-Version
string
. Wahlfrei. Wird verwendet, wenn msbuildLocationMethod = version
. Zulässige Werte: latest
, 17.0
(MSBuild 17.0), 16.0
(MSBuild 16.0), 15.0
(MSBuild 15.0), 14.0
(MSBuild 14.0), 12.0
(MSBuild 12.0), 4.0
(MSBuild 4.0). Standardwert: latest
.
Wenn die bevorzugte Version nicht gefunden werden kann, wird stattdessen die neueste Version verwendet. Bei einem macOS-Agent wird xbuild
(Mono) verwendet, wenn die Version niedriger als 15.0
ist.
msbuildVersion
-
MSBuild-Version
string
. Wahlfrei. Wird verwendet, wenn msbuildLocationMethod = version
. Zulässige Werte: latest
, 16.0
(MSBuild 16.0), 15.0
(MSBuild 15.0), 14.0
(MSBuild 14.0), 12.0
(MSBuild 12.0), 4.0
(MSBuild 4.0). Standardwert: latest
.
Wenn die bevorzugte Version nicht gefunden werden kann, wird stattdessen die neueste Version verwendet. Bei einem macOS-Agent wird xbuild
(Mono) verwendet, wenn die Version niedriger als 15.0
ist.
msbuildArchitecture
-
MSBuild-Architektur
string
. Wahlfrei. Wird verwendet, wenn msbuildLocationMethod = version
. Zulässige Werte: x86
(MSBuild x86), x64
(MSBuild x64). Standardwert: x86
.
Stellt die MSBuild-Architektur (x86, x64) zur Ausführung bereit.
msbuildLocation
-
Pfad zu MSBuild-
string
. Wahlfrei. Wird verwendet, wenn msbuildLocationMethod = location
.
Stellt den Pfad zu MSBuild bereit.
platform
-
Platform
string
.
Tipp
- Wenn Sie auf eine MSBuild-Projektdatei (.*proj) anstelle einer Lösung abzielen, geben Sie
AnyCPU
an (kein Leerzeichen). - Deklarieren Sie eine Buildvariable wie
BuildPlatform
auf der Registerkarte "Variablen" (auswählenAllow
bei Warteschlangenzeit), und verweisen Sie hier als$(BuildPlatform)
darauf. Auf diese Weise können Sie die Plattform ändern, wenn Sie den Build in die Warteschlange stellen und das Erstellen mehrerer Konfigurationen aktivieren.
configuration
-
Configuration
string
.
Tipp
Deklarieren Sie eine Buildvariable wie BuildConfiguration
auf der Registerkarte "Variablen" (auswählen Allow
bei Warteschlangenzeit), und verweisen Sie hier als $(BuildConfiguration)
darauf. Auf diese Weise können Sie die Plattform ändern, wenn Sie den Build in die Warteschlange stellen und das Erstellen mehrerer Konfigurationen aktivieren.
msbuildArguments
-
MSBuild-Argumente
string
.
Gibt zusätzliche Argumente an, die an MSBuild (unter Windows) und xbuild (unter macOS) übergeben werden.
clean
-
sauberen
boolean
. Standardwert: false
.
Legen Sie diese Einstellung auf False
fest, wenn Sie dies zu einem inkrementellen Build machen möchten. Diese Einstellung kann die Erstellungszeit verringern, insbesondere, wenn ihre Codebasis groß ist. Diese Option hat keine praktische Wirkung, es sei denn, Sie legen auch das Clean
Repository auf False
fest.
Legen Sie diese Eigenschaft auf True
fest, wenn Sie den gesamten Code in den Codeprojekten neu erstellen möchten. Dies entspricht dem Argument MSBuild /target:clean
.
Weitere Informationen finden Sie unter Repooptionen
maximumCpuCount
-
Build in Parallel
boolean
. Standardwert: false
.
Wenn Ihre MSBuild-Zielkonfiguration mit dem Erstellen parallel kompatibel ist, können Sie diese Eingabe überprüfen, um die /m
zu MSBuild (nur Windows) zu übergeben. Wenn Ihre Zielkonfiguration nicht mit dem Erstellen parallel kompatibel ist, kann die Überprüfung dieser Option dazu führen, dass Ihr Build zu file-in-use
Fehlern oder zeitweiligen oder inkonsistenten Buildfehlern führt.
restoreNugetPackages
-
NuGet-Pakete wiederherstellen
boolean
. Standardwert: false
.
Diese Option ist veraltet. Um NuGet-Pakete wiederherzustellen, fügen Sie vor dem Build eine NuGet- Aufgabe hinzu.
logProjectEvents
-
Projektdetails aufzeichnen
boolean
. Standardwert: false
.
Zeichnet optional Zeitachsendetails für jedes Projekt auf (nur Windows).
createLogFile
-
Protokolldatei erstellen
boolean
. Standardwert: false
.
Erstellt optional eine Protokolldatei (nur Windows).
logFileVerbosity
-
protokolldatei verbosity
string
. Wahlfrei. Wird verwendet, wenn createLogFile = true
. Zulässige Werte: quiet
, minimal
, normal
, detailed
, diagnostic
. Standardwert: normal
.
Gibt die Ausführlichkeit der Protokolldatei an.
Aufgabensteuerungsoptionen
Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.
Ausgabevariablen
Keiner.
Bemerkungen
Sollte ich die Visual Studio Build-Aufgabe oder die MSBuild-Aufgabe verwenden?
Wenn Sie eine Lösung erstellen, sollten Sie in den meisten Fällen die Visual Studio Build-Aufgabeverwenden. Dieser Vorgang wird automatisch ausgeführt:
- Legt die
/p:VisualStudioVersion
-Eigenschaft für Sie fest. Dadurch wird MSBuild gezwungen, eine bestimmte Gruppe von Zielen zu verwenden, die die Wahrscheinlichkeit eines erfolgreichen Builds erhöhen. - Gibt das MSBuild-Versionsargument an.
In einigen Fällen müssen Sie möglicherweise die MSBuild
Aufgabe verwenden. Beispielsweise sollten Sie es verwenden, wenn Sie Codeprojekte außer einer Lösung erstellen.
Wo erhalte ich weitere Informationen zu MSBuild?
Wie kann ich mehrere Konfigurationen für mehrere Plattformen erstellen?
Stellen Sie auf der Registerkarte "Variablen" sicher, dass Sie Variablen für Ihre Konfigurationen und Plattformen definiert haben. Wenn Sie mehrere Werte angeben möchten, trennen Sie sie durch Kommas. Beispiel:
- Bei einer .NET-App können Sie
BuildConfiguration
mit Debug- und Releasewerten angeben, und Sie könnenBuildPlatform
mit jedem CPU-Wert angeben. - Bei einer C++-App können Sie
BuildConfiguration
mit Debug- und Releasewerten angeben, und Sie könnenBuildPlatform
mit beliebigen x86- und x64-Werten angeben.
- Bei einer .NET-App können Sie
Wählen Sie auf der Registerkarte "Optionen"
MultiConfiguration
aus, und geben Sie dieMultipliers
an, getrennt durch Kommas. Beispiel:BuildConfiguration, BuildPlatform
Wählen SieParallel
aus, wenn Sie die Aufträge (eine für jede Wertekombination) parallel an mehrere Agents verteilen möchten, wenn sie verfügbar sind.Wählen Sie auf der Registerkarte "Erstellen" diesen Schritt aus, und geben Sie die Argumente
Platform
undConfiguration
an. Beispiel:- Bahnsteig:
$(BuildPlatform)
- Konfiguration:
$(BuildConfiguration)
- Bahnsteig:
Kann ich TFSBuild.proj-Dateien erstellen?
Sie können keine TFSBuild.proj
Dateien erstellen. Diese Arten von Dateien werden von TFS 2005
und TFS 2008
generiert. Diese Dateien enthalten Aufgaben, und Ziele werden nur mit XAML-Buildsunterstützt.
Problembehandlung
Dieser Abschnitt enthält Tipps zur Problembehandlung bei häufig auftretenden Problemen, die ein Benutzer bei der Verwendung der MSBuild
-Aufgabe auftreten kann.
- fehler beim Build mit folgendem Fehler: Beim Ausführen von MSBuild ist ein interner Fehler aufgetreten.
Fehler beim Build mit dem folgenden Fehler: Beim Ausführen von MSBuild ist ein interner Fehler aufgetreten.
Mögliche Ursachen
- Ändern Sie die MSBuild-Version.
- Probleme mit einer Drittanbietererweiterung.
- Neue Updates für Visual Studio, die zu fehlenden Assemblys im Build-Agent führen können.
- Einige der erforderlichen NuGet-Pakete wurden verschoben oder gelöscht.
Vorschläge für die Problembehandlung
- Ausführen der Pipeline mit Diagnose zum Abrufen detaillierter Protokolle
- Versuchen Sie, den Fehler lokal zu reproduzieren
- Was kann ich sonst noch tun?
Ausführen der Pipeline mit Diagnose zum Abrufen detaillierter Protokolle
Eine der verfügbaren Optionen zur Diagnose des Problems besteht darin, sich die generierten Protokolle anzusehen. Sie können Ihre Pipelineprotokolle anzeigen, indem Sie die entsprechende Aufgabe und den entsprechenden Auftrag in der Zusammenfassung der Pipelineausführung auswählen.
So rufen Sie die Protokolle der Pipelineausführung Abrufen von Protokollen zum Diagnostizieren von Problemen
Sie können auch ein benutzerdefiniertes ausführliches Protokoll einrichten und herunterladen, um Ihre Problembehandlung zu unterstützen:
Zusätzlich zu den Pipelinediagnoseprotokollen können Sie auch diese anderen Arten von Protokollen überprüfen, die weitere Informationen enthalten, um Das Problem zu debuggen und zu lösen:
- diagnoseprotokolle für Worker
- Agent-Diagnoseprotokolle
- Andere Protokolle (Umgebung und Funktionen)
Versuchen Sie, den Fehler lokal zu reproduzieren
Wenn Sie einen gehosteten Build-Agent verwenden, sollten Sie versuchen, den Fehler lokal zu reproduzieren. Auf diese Weise können Sie einschränken, ob der Fehler das Ergebnis des Build-Agents oder der Buildaufgabe ist.
Führen Sie denselben MSBuild
Befehl auf Ihrem lokalen Computer mit denselben Argumenten aus. Weitere Informationen finden Sie MSBuild-Befehl.
Tipp
Wenn Sie das Problem auf Ihrem lokalen Computer reproduzieren können, besteht der nächste Schritt darin, das problem MSBuild zu untersuchen.
Erfahren Sie mehr über von Microsoft gehosteten Agents.
So richten Sie Ihren eigenen selbst gehosteten Agent ein und führen die Buildaufträge aus:
Was kann ich sonst noch tun?
Einige der MSBuild-Fehler werden durch eine Änderung in Visual Studio verursacht, sodass Sie nach Visual Studio Developer Community- suchen können, um festzustellen, ob dieses Problem gemeldet wurde. Wir freuen uns auch über Ihre Fragen, Vorschläge und Feedback.
Anforderungen
Anforderung | BESCHREIBUNG |
---|---|
Pipelinetypen | YAML, klassischer Build |
Läuft auf | Agent, DeploymentGroup |
Anforderungen | Self-hosted agents must have capabilities that match the following anforderungen to run jobs that use this task: msbuild |
Funktionen | Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag. |
Befehlseinschränkungen | Jegliche |
Settable-Variablen | Jegliche |
Agentversion | 1.95.0 oder höher |
Vorgangskategorie | Bauen |