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älj Allow 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?

MSBuild-referens

Kommandoradsreferens för MSBuild

Hur gör jag för att skapa flera konfigurationer för flera plattformar?

  1. 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 ange BuildPlatform med valfritt CPU-värde.
    • För en C++-app kan du ange BuildConfiguration med felsöknings- och versionsvärden, och du kan ange BuildPlatform med alla x86- och x64-värden.
  2. På fliken Alternativ väljer du MultiConfiguration och anger , Multipliersavgränsat med kommatecken. Exempel: BuildConfiguration, BuildPlatform Välj Parallel om du vill distribuera jobben (en för varje kombination av värden) till flera agenter parallellt om de är tillgängliga.

  3. På fliken Skapa väljer du det här steget och anger argumenten Platform och Configuration . Exempel:

    • Plattform: $(BuildPlatform)
    • Konfiguration: $(BuildConfiguration)

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

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:

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

Se även