MSBuild@1 – MSBuild v1-aktivitet
Använd den här uppgiften för att skapa med MSBuild.
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.
# 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.
Indata
solution
- Projekt
string
. Krävs. Standardvärde: **/*.sln
.
Om du vill skapa flera projekt anger du sökvillkor. Du kan använda jokertecken med en mapp (*) och rekursiva jokertecken (**). Söker till exempel **.*proj
efter alla MSBuild-projektfiler (.*proj
) i alla underkataloger.
Kontrollera att de projekt som du anger laddas ned av den här bygg-pipelinen. På fliken Lagringsplats:
- Om du använder TFVC kontrollerar du att projektet är underordnat någon av mappningarna på fliken Lagringsplats.
- Om du använder Git kontrollerar du att projektet eller projektet finns på din Git-lagringsplats i en gren som du skapar.
Tips
Om du skapar en lösning rekommenderar vi att du använder Visual Studio-bygguppgiften i stället för MSBuild-uppgiften.
msbuildLocationMethod
- Msbuild
string
. Tillåtna värden: version
, location
(Ange plats). Standardvärde: version
.
msbuildVersion
- MSBuild-version
string
. Valfritt. Använd när msbuildLocationMethod = version
. Tillåtna värden: 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). Standardvärde: latest
.
Om det inte går att hitta den önskade versionen används den senaste versionen som hittades i stället. På en macOS-agent xbuild
används (Mono) om versionen är lägre än 15.0
.
msbuildVersion
- MSBuild-version
string
. Valfritt. Använd när msbuildLocationMethod = version
. Tillåtna värden: 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). Standardvärde: latest
.
Om det inte går att hitta den önskade versionen används den senaste versionen som hittades i stället. På en macOS-agent xbuild
används (Mono) om versionen är lägre än 15.0
.
msbuildArchitecture
- MSBuild-arkitektur
string
. Valfritt. Använd när msbuildLocationMethod = version
. Tillåtna värden: x86
(MSBuild x86), x64
(MSBuild x64). Standardvärde: x86
.
Tillhandahåller MSBuild-arkitekturen (x86, x64) som ska köras.
msbuildLocation
- Sökväg till MSBuild
string
. Valfritt. Använd när msbuildLocationMethod = location
.
Tillhandahåller sökvägen till MSBuild.
platform
- Plattform
string
.
Tips
- Om du riktar in dig på en MSBuild-projektfil (.*proj) i stället för en lösning anger du
AnyCPU
(inget blanksteg). - Deklarera en byggvariabel, till exempel
BuildPlatform
på fliken Variabler (väljAllow
i Kötid) och referera till den här som$(BuildPlatform)
. På så sätt kan du ändra plattformen när du köar bygget och gör det möjligt att skapa flera konfigurationer.
configuration
- Konfiguration
string
.
Tips
Deklarera en byggvariabel, till exempel BuildConfiguration
på fliken Variabler (välj Allow
i Kötid) och referera till den här som $(BuildConfiguration)
. På så sätt kan du ändra plattformen när du köar bygget och gör det möjligt att skapa flera konfigurationer.
msbuildArguments
- MSBuild-argument
string
.
Anger ytterligare argument som skickas till MSBuild (i Windows) och xbuild (på macOS).
clean
- Ren
boolean
. Standardvärde: false
.
Ange till False
om du vill göra detta till en inkrementell version. Den här inställningen kan minska byggtiden, särskilt om din kodbas är stor. Det här alternativet har ingen praktisk effekt om du inte också anger lagringsplatsen Clean
till False
.
Ange till True
om du vill återskapa all kod i kodprojekten. Detta motsvarar argumentet MSBuild /target:clean
.
Mer information finns i lagringsplatsalternativ
maximumCpuCount
- Skapa parallellt
boolean
. Standardvärde: false
.
Om din MSBuild-målkonfiguration är kompatibel med att bygga parallellt kan du kontrollera dessa indata för att skicka växeln /m
till MSBuild (endast Windows). Om målkonfigurationen inte är kompatibel med att bygga parallellt kan kontrollen av det här alternativet orsaka att bygget resulterar i file-in-use
fel eller tillfälliga eller inkonsekventa byggfel.
restoreNugetPackages
- Återställa NuGet-paket
boolean
. Standardvärde: false
.
Det här alternativet är inaktuellt. Om du vill återställa NuGet-paket lägger du till en NuGet-uppgift före bygget.
logProjectEvents
- Registrera projektinformation
boolean
. Standardvärde: false
.
Du kan också ange tidslinjeinformation för varje projekt (endast Windows).
createLogFile
- Skapa loggfil
boolean
. Standardvärde: false
.
Du kan också skapa en loggfil (endast Windows).
logFileVerbosity
- Utförlig loggfil
string
. Valfritt. Använd när createLogFile = true
. Tillåtna värden: quiet
, minimal
, normal
, detailed
, diagnostic
. Standardvärde: normal
.
Anger loggfilens utförlighet.
Kontrollalternativ för aktivitet
Alla aktiviteter har kontrollalternativ utöver sina aktivitetsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.
Utdatavariabler
Inga.
Kommentarer
Ska jag använda Visual Studio Build-uppgiften eller MSBuild-uppgiften?
Om du skapar en lösning bör du i de flesta fall använda Visual Studio Build-uppgiften. Den här uppgiften:
/p:VisualStudioVersion
Anger egenskapen åt dig. Detta tvingar MSBuild att använda en viss uppsättning mål som ökar sannolikheten för en lyckad version.- Anger argumentet MSBuild-version.
I vissa fall kan du behöva använda uppgiften MSBuild
. Du bör till exempel använda den om du skapar kodprojekt förutom en lösning.
Var kan jag lära mig mer om MSBuild?
Kommandoradsreferens för MSBuild
Hur gör jag för att skapa flera konfigurationer för flera plattformar?
På fliken Variabler kontrollerar du att du har definierat variabler för dina konfigurationer och plattformar. Om du vill ange flera värden separerar du dem med kommatecken. Exempel:
- För en .NET-app kan du ange
BuildConfiguration
med felsöknings- och versionsvärden, och du kan angeBuildPlatform
med valfritt CPU-värde. - För en C++-app kan du ange
BuildConfiguration
med felsöknings- och versionsvärden, och du kan angeBuildPlatform
med alla x86- och x64-värden.
- För en .NET-app kan du ange
På fliken Alternativ väljer du
MultiConfiguration
och anger ,Multipliers
avgränsat med kommatecken. Exempel:BuildConfiguration, BuildPlatform
VäljParallel
om du vill distribuera jobben (en för varje kombination av värden) till flera agenter parallellt om de är tillgängliga.På fliken Skapa väljer du det här steget och anger argumenten
Platform
ochConfiguration
. Exempel:- Plattform:
$(BuildPlatform)
- Konfiguration:
$(BuildConfiguration)
- Plattform:
Kan jag skapa TFSBuild.proj-filer?
Du kan inte skapa TFSBuild.proj
filer. Den här typen av filer genereras av TFS 2005
och TFS 2008
. Dessa filer innehåller uppgifter och mål stöds endast med XAML-versioner.
Felsökning
Det här avsnittet innehåller felsökningstips för vanliga problem som kan uppstå när en användare använder MSBuild
uppgiften.
Build misslyckades med följande fel: Ett internt fel inträffade när MSBuild kördes
Möjliga orsaker
- Ändra i MSBuild-versionen.
- Problem med ett tillägg från tredje part.
- Nya uppdateringar av Visual Studio som kan orsaka saknade sammansättningar i byggagenten.
- Flyttade eller tog bort några av de nödvändiga NuGet-paketen.
Felsökningsförslag
- Kör pipelinen med diagnostik för att hämta detaljerade loggar
- Försök återskapa felet lokalt
- Vad mer kan jag göra?
Kör pipelinen med diagnostik för att hämta detaljerade loggar
Ett av de tillgängliga alternativen för att diagnostisera problemet är att ta en titt på de genererade loggarna. Du kan visa dina pipelineloggar genom att välja rätt uppgift och jobb i sammanfattningen av pipelinekörningen.
Hämta loggarna för pipelinekörningen Genom att hämta loggar för att diagnostisera problem
Du kan också konfigurera och ladda ned en anpassad utförlig logg som hjälper dig med felsökningen:
Förutom pipelinediagnostikloggarna kan du även kontrollera dessa andra typer av loggar som innehåller mer information som hjälper dig att felsöka och lösa problemet:
- Diagnostikloggar för arbetare
- Diagnostikloggar för agent
- Andra loggar (miljö och funktioner)
Försök återskapa felet lokalt
Om du använder en värdbaserad byggagent kanske du vill försöka återskapa felet lokalt. Detta hjälper dig att begränsa om felet beror på byggagenten eller byggaktiviteten.
Kör samma MSBuild
kommando på den lokala datorn med samma argument. Se MSBuild-kommandot som referens.
Tips
Om du kan återskapa problemet på den lokala datorn är nästa steg att undersöka MSBuild-problemet .
Läs mer om Microsofts värdbaserade agenter.
Så här konfigurerar du en egen lokalt installerad agent och kör byggjobben:
Vad mer kan jag göra?
Några av MSBuild-felen orsakas av en ändring i Visual Studio så att du kan söka i Visual Studio Developer Community för att se om det här problemet har rapporterats. Vi välkomnar även dina frågor, förslag och feedback.
Krav
Krav | Beskrivning |
---|---|
Pipelinetyper | YAML, klassisk version |
Körs på | Agent, DeploymentGroup |
Krav | Lokalt installerade agenter måste ha funktioner som matchar följande krav för att köra jobb som använder den här uppgiften: msbuild |
Funktioner | Den här aktiviteten uppfyller inte några krav för efterföljande uppgifter i jobbet. |
Kommandobegränsningar | Valfri |
Inställningsbara variabler | Valfri |
Agentversion | 1.95.0 eller senare |
Uppgiftskategori | Build |