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 (selecteerAllow
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-opdrachtregelverwijzing
Hoe kan ik meerdere configuraties bouwen voor meerdere platforms?
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 opgevenBuildPlatform
met elke CPU-waarde. - Voor een C++-app kunt u opgeven
BuildConfiguration
met foutopsporings- en releasewaarden, en u kunt opgevenBuildPlatform
met x86- en x64-waarden.
- Voor een .NET-app kunt u opgeven
Selecteer
MultiConfiguration
en geef op het tabblad Opties deMultipliers
op, gescheiden door komma's. Bijvoorbeeld:BuildConfiguration, BuildPlatform
selecteerParallel
of u de taken (één voor elke combinatie van waarden) parallel wilt distribueren naar meerdere agents als deze beschikbaar zijn.Selecteer deze stap op het tabblad Bouwen en geef de
Platform
argumenten enConfiguration
op. Bijvoorbeeld:- Platform:
$(BuildPlatform)
- Configuratie:
$(BuildConfiguration)
- Platform:
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
- Probeer de fout lokaal te reproduceren
- Wat kan ik nog meer doen?
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:
- Diagnostische logboeken voor werkrollen
- Diagnostische logboeken van agent
- Andere logboeken (omgeving en mogelijkheden)
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 |