Delen via


MSBuild@1 - MSBuild v1-taak

Gebruik deze taak om te bouwen met 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.

Invoerwaarden

solution - Project
string. Vereist. Standaardwaarde: **/*.sln.

Als u meerdere projecten wilt maken, geeft u zoekcriteria op. U kunt een jokerteken met één map (*) en recursieve jokertekens (*)gebruiken. Zoekt bijvoorbeeld **.*proj naar alle MSBuild-projectbestanden (.*proj) in alle submappen.

Zorg ervoor dat de projecten die u opgeeft, worden gedownload door deze build-pijplijn. Op het tabblad Opslagplaats:

  • Als u TFVC gebruikt, moet u ervoor zorgen dat het project een onderliggend element is van een van de toewijzingen op het tabblad Opslagplaats.
  • Als u Git gebruikt, moet u ervoor zorgen dat het project of project zich in uw Git-opslagplaats bevindt, in een vertakking die u bouwt.

Tip

Als u een oplossing bouwt, raden we u aan de Build-taak van Visual Studio te gebruiken in plaats van de MSBuild-taak.


msbuildLocationMethod - MSBuild
string. Toegestane waarden: version, location (Locatie opgeven). Standaardwaarde: version.


msbuildVersion - MSBuild-versie
string. Optioneel. Gebruik wanneer msbuildLocationMethod = version. Toegestane waarden: 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). Standaardwaarde: latest.

Als de voorkeursversie niet kan worden gevonden, wordt in plaats daarvan de meest recente versie gebruikt. Op een macOS-agent xbuild wordt (Mono) gebruikt als de versie lager is dan 15.0.


msbuildVersion - MSBuild-versie
string. Optioneel. Gebruik wanneer msbuildLocationMethod = version. Toegestane waarden: 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). Standaardwaarde: latest.

Als de voorkeursversie niet kan worden gevonden, wordt in plaats daarvan de meest recente versie gebruikt. Op een macOS-agent xbuild wordt (Mono) gebruikt als de versie lager is dan 15.0.


msbuildArchitecture - MSBuild-architectuur
string. Optioneel. Gebruik wanneer msbuildLocationMethod = version. Toegestane waarden: x86 (MSBuild x86), x64 (MSBuild x64). Standaardwaarde: x86.

Levert de MSBuild-architectuur (x86, x64) die moet worden uitgevoerd.


msbuildLocation - Pad naar MSBuild
string. Optioneel. Gebruik wanneer msbuildLocationMethod = location.

Levert het pad naar MSBuild.


platform - Platform
string.

Tip

  • Als u zich richt op een MSBuild-projectbestand (.*proj) in plaats van een oplossing, geeft u AnyCPU (geen witruimte) op.
  • Declareer een buildvariabele, zoals BuildPlatform op het tabblad Variabelen (selecteer Allow op Wachtrijtijd) en verwijs hier naar $(BuildPlatform). Op deze manier kunt u het platform wijzigen wanneer u de build in de wachtrij zet en het bouwen van meerdere configuraties inschakelt.

configuration - Configuratie
string.

Tip

Declareer een buildvariabele, zoals BuildConfiguration op het tabblad Variabelen (selecteer Allow op Wachtrijtijd) en verwijs hier naar $(BuildConfiguration). Op deze manier kunt u het platform wijzigen wanneer u de build in de wachtrij zet en het bouwen van meerdere configuraties inschakelt.


msbuildArguments - MSBuild-argumenten
string.

Hiermee geeft u aanvullende argumenten doorgegeven aan MSBuild (in Windows) en xbuild (op macOS).


clean - Schoon
boolean. Standaardwaarde: false.

Stel in op False als u hiervan een incrementele build wilt maken. Deze instelling kan de buildtijd verkorten, met name als uw codebasis groot is. Deze optie heeft geen praktisch effect, tenzij u de Clean opslagplaats ook instelt op False. Stel in op True als u alle code in de codeprojecten opnieuw wilt opbouwen. Dit komt overeen met het argument MSBuild /target:clean . Zie Opties voor opslagplaatsen voor meer informatie


maximumCpuCount - Parallel bouwen
boolean. Standaardwaarde: false.

Als uw MSBuild-doelconfiguratie compatibel is met parallel bouwen, kunt u deze invoer controleren om de /m overschakeling door te geven aan MSBuild (alleen Windows). Als uw doelconfiguratie niet compatibel is met parallel bouwen, kan het controleren van deze optie leiden tot file-in-use fouten of onregelmatige of inconsistente buildfouten.


restoreNugetPackages - NuGet-pakketten herstellen
boolean. Standaardwaarde: false.

Deze optie is afgeschaft. Als u NuGet-pakketten wilt herstellen, voegt u een NuGet-taak toe vóór de build.


logProjectEvents - Projectdetails opnemen
boolean. Standaardwaarde: false.

Optioneel registreert u tijdlijngegevens voor elk project (alleen Windows).


createLogFile - Logboekbestand maken
boolean. Standaardwaarde: false.

U kunt desgewenst een logboekbestand maken (alleen Windows).


logFileVerbosity - Uitgebreidheid van logboekbestand
string. Optioneel. Gebruik wanneer createLogFile = true. Toegestane waarden: quiet, minimal, normal, detailed, . diagnostic Standaardwaarde: normal.

Hiermee geeft u uitgebreidheid van logboekbestanden op.


Opties voor taakbeheer

Alle taken hebben besturingsopties naast hun taakinvoer. Zie Opties voor besturingselementen en algemene taakeigenschappen voor meer informatie.

Uitvoervariabelen

Geen.

Opmerkingen

Moet ik de Visual Studio Build-taak of de MSBuild-taak gebruiken?

Als u een oplossing bouwt, moet u in de meeste gevallen de Build-taak van Visual Studio gebruiken. Deze taak wordt automatisch uitgevoerd:

  • Hiermee stelt u de /p:VisualStudioVersion eigenschap voor u in. Dit dwingt MSBuild om een bepaalde set doelen te gebruiken die de kans op een geslaagde build vergroten.
  • Hiermee geeft u het msBuild-versieargument.

In sommige gevallen moet u de MSBuild taak mogelijk gebruiken. U moet deze bijvoorbeeld gebruiken als u codeprojecten bouwt die los staan van een oplossing.

Waar vind ik meer informatie over MSBuild?

MSBuild-verwijzing

MSBuild-opdrachtregelverwijzing

Hoe kan ik meerdere configuraties bouwen voor meerdere platforms?

  1. Controleer op het tabblad Variabelen of er variabelen zijn gedefinieerd voor uw configuraties en platforms. Als u meerdere waarden wilt opgeven, scheidt u deze met komma's. Bijvoorbeeld:

    • Voor een .NET-app kunt u opgeven BuildConfiguration met foutopsporings- en releasewaarden, en u kunt opgeven BuildPlatform met elke CPU-waarde.
    • Voor een C++-app kunt u opgeven BuildConfiguration met foutopsporings- en releasewaarden, en u kunt opgeven BuildPlatform met x86- en x64-waarden.
  2. Selecteer MultiConfiguration en geef op het tabblad Opties de Multipliersop, gescheiden door komma's. Bijvoorbeeld: BuildConfiguration, BuildPlatform selecteer Parallel of u de taken (één voor elke combinatie van waarden) parallel wilt distribueren naar meerdere agents als deze beschikbaar zijn.

  3. Selecteer deze stap op het tabblad Bouwen en geef de Platform argumenten en Configuration op. Bijvoorbeeld:

    • Platform: $(BuildPlatform)
    • Configuratie: $(BuildConfiguration)

Kan ik TFSBuild.proj-bestanden maken?

U kunt geen bestanden maken TFSBuild.proj . Dit soort bestanden worden gegenereerd door TFS 2005 en TFS 2008. Deze bestanden bevatten taken en doelen worden alleen ondersteund met behulp van XAML-builds.

Problemen oplossen

Deze sectie bevat tips voor het oplossen van veelvoorkomende problemen die een gebruiker kan tegenkomen bij het gebruik van de MSBuild taak.

Build is mislukt met de volgende fout: Er is een interne fout opgetreden tijdens het uitvoeren van MSBuild

Mogelijke oorzaken
  • Wijziging in de MSBuild-versie.
  • Problemen met een extensie van derden.
  • Nieuwe updates voor Visual Studio die kunnen leiden tot ontbrekende assembly's in de buildagent.
  • Enkele van de benodigde NuGet-pakketten zijn verplaatst of verwijderd.
Suggesties voor probleemoplossing
De pijplijn uitvoeren met diagnostische gegevens om gedetailleerde logboeken op te halen

Een van de beschikbare opties om het probleem vast te stellen, is om de gegenereerde logboeken te bekijken. U kunt uw pijplijnlogboeken weergeven door de juiste taak en taak te selecteren in het overzicht van de pijplijnuitvoering.

De logboeken van de uitvoering van uw pijplijn ophalen Logboeken ophalen om problemen vast te stellen

U kunt ook een aangepast uitgebreid logboek instellen en downloaden om u te helpen bij het oplossen van problemen:

Naast de diagnostische logboeken voor pijplijnen kunt u ook deze andere typen logboeken controleren die meer informatie bevatten om u te helpen bij het opsporen van fouten en het oplossen van het probleem:

Probeer de fout lokaal te reproduceren

Als u een gehoste buildagent gebruikt, kunt u proberen de fout lokaal te reproduceren. Hiermee kunt u bepalen of de fout het resultaat is van de buildagent of de buildtaak.

Voer dezelfde MSBuild opdracht uit op uw lokale computer met dezelfde argumenten. Bekijk de MSBuild-opdracht ter referentie.

Tip

Als u het probleem op uw lokale computer kunt reproduceren, is de volgende stap het onderzoeken van het MSBuild-probleem .

Meer informatie over door Microsoft gehoste agents.

Uw eigen zelf-hostende agent instellen en de buildtaken uitvoeren:

Wat kan ik nog meer doen?

Sommige MSBuild-fouten worden veroorzaakt door een wijziging in Visual Studio, zodat u kunt zoeken in de Visual Studio Developer Community om te zien of dit probleem is gerapporteerd. We stellen ook uw vragen, suggesties en feedback op prijs.

Vereisten

Vereiste Beschrijving
Pijplijntypen YAML, klassieke build
Wordt uitgevoerd op Agent, DeploymentGroup
Eisen Zelf-hostende agents moeten mogelijkheden hebben die voldoen aan de volgende vereisten om taken uit te voeren die gebruikmaken van deze taak: msbuild
Functies Deze taak voldoet niet aan eventuele vereisten voor volgende taken in de taak.
Opdrachtbeperkingen Alle
Instelbare variabelen Alle
Agentversie 1.95.0 of hoger
Taakcategorie Build

Zie ook