MSBuild@1 – úloha MSBuild v1
Tuto úlohu použijte k sestavení pomocí nástroje MSBuild.
Syntaxe
# 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.
Vstupy
solution
-
Project
string
. Povinné. Výchozí hodnota: **/*.sln
.
Pokud chcete vytvořit více projektů, zadejte kritéria hledání. Můžete použít zástupný znak s jednou složkou (*) a rekurzivní zástupné cardy (**). Například **.*proj
vyhledá všechny soubory projektu MSBuild (.*proj
) ve všech podadresářích.
Ujistěte se, že jsou zadané projekty staženy tímto kanálem buildu. Na kartě Úložiště:
- Pokud používáte TFVC, ujistěte se, že je projekt podřízeným mapováním na kartě Úložiště.
- Pokud používáte Git, ujistěte se, že je projekt nebo projekt ve vašem úložišti Git ve větvi, kterou vytváříte.
Návod
Pokud vytváříte řešení, doporučujeme místo úlohy MSBuild použít úlohu sestavení sady Visual Studio.
msbuildLocationMethod
-
nástroje MSBuild
string
. Povolené hodnoty: version
, location
(zadat umístění). Výchozí hodnota: version
.
msbuildVersion
-
verze nástroje MSBuild
string
. Volitelný. Používá se při msbuildLocationMethod = version
. Povolené hodnoty: 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). Výchozí hodnota: latest
.
Pokud upřednostňovanou verzi nenajdete, použije se místo toho nejnovější nalezená verze. V agentu macOS se používá xbuild
(Mono), pokud je verze nižší než 15.0
.
msbuildVersion
-
verze nástroje MSBuild
string
. Volitelný. Používá se při msbuildLocationMethod = version
. Povolené hodnoty: 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). Výchozí hodnota: latest
.
Pokud upřednostňovanou verzi nenajdete, použije se místo toho nejnovější nalezená verze. V agentu macOS se používá xbuild
(Mono), pokud je verze nižší než 15.0
.
msbuildArchitecture
-
architektury NÁSTROJE MSBuild
string
. Volitelný. Používá se při msbuildLocationMethod = version
. Povolené hodnoty: x86
(MSBuild x86), x64
(MSBuild x64). Výchozí hodnota: x86
.
Poskytuje architekturu MSBuild (x86, x64) ke spuštění.
msbuildLocation
-
cesta k nástroje MSBuild
string
. Volitelný. Používá se při msbuildLocationMethod = location
.
Poskytuje cestu k nástroji MSBuild.
platformy platform
-
string
.
Návod
- Pokud cílíte na soubor projektu MSBuild (.*proj) místo řešení, zadejte
AnyCPU
(bez prázdných znaků). - Deklarujte proměnnou sestavení, například
BuildPlatform
na kartě Proměnné (výběrAllow
ve frontě) a odkazujte na ni zde jako na$(BuildPlatform)
. Tímto způsobem můžete platformu upravit při zařadíte do fronty sestavení a povolíte vytváření více konfigurací.
konfigurace configuration
-
string
.
Návod
Deklarujte proměnnou sestavení, například BuildConfiguration
na kartě Proměnné (výběr Allow
ve frontě) a odkazujte na ni zde jako na $(BuildConfiguration)
. Tímto způsobem můžete platformu upravit při zařadíte do fronty sestavení a povolíte vytváření více konfigurací.
msbuildArguments
-
argumenty nástroje MSBuild
string
.
Určuje další argumenty předané nástroji MSBuild (ve Windows) a xbuildu (v macOS).
clean
-
Clean
boolean
. Výchozí hodnota: false
.
Pokud chcete vytvořit přírůstkové sestavení, nastavte na False
. Toto nastavení může zkrátit dobu sestavení, zejména pokud je základ kódu velký. Tato možnost nemá žádný praktický účinek, pokud nenastavíte Clean
úložiště na False
.
Pokud chcete znovu sestavit veškerý kód v projektech kódu, nastavte na True
. Je to ekvivalent argumentu /target:clean
nástroje MSBuild.
Další informace najdete v tématu možnosti úložiště
maximumCpuCount
-
sestavení paralelně
boolean
. Výchozí hodnota: false
.
Pokud je konfigurace cíle MSBuild kompatibilní s paralelním sestavováním, můžete zkontrolovat tento vstup a předat přepínač /m
do nástroje MSBuild (pouze Windows). Pokud vaše cílová konfigurace není kompatibilní s paralelním sestavováním, kontrola této možnosti může způsobit, že sestavení způsobí chyby file-in-use
nebo přerušované nebo nekonzistentní selhání sestavení.
obnovení balíčků NuGet restoreNugetPackages
-
boolean
. Výchozí hodnota: false
.
Tato možnost je zastaralá. Pokud chcete obnovit balíčky NuGet, před sestavením přidejte úlohu NuGet.
logProjectEvents
-
Záznam podrobností projektu
boolean
. Výchozí hodnota: false
.
Volitelně zaznamenává podrobnosti časové osy pro každý projekt (jenom Windows).
createLogFile
-
vytvoření souboru protokolu
boolean
. Výchozí hodnota: false
.
Volitelně můžete vytvořit soubor protokolu (jenom Windows).
logFileVerbosity
-
podrobností souboru protokolu
string
. Volitelný. Používá se při createLogFile = true
. Povolené hodnoty: quiet
, minimal
, normal
, detailed
, diagnostic
. Výchozí hodnota: normal
.
Určuje úroveň podrobností souboru protokolu.
Možnosti ovládání úloh
Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace naleznete v tématu Možnosti ovládacího prvku a běžné vlastnosti úloh.
Výstupní proměnné
Žádné.
Poznámky
Mám použít úlohu sestavení sady Visual Studio nebo úlohu MSBuild?
Pokud vytváříte řešení, ve většině případů byste měli použít úlohu sestavení sady Visual Studio. Tento úkol automaticky:
- Nastaví vlastnost
/p:VisualStudioVersion
za vás. Tím se vynutí, aby nástroj MSBuild používal konkrétní sadu cílů, které zvyšují pravděpodobnost úspěšného sestavení. - Určuje argument verze nástroje MSBuild.
V některých případech může být potřeba použít MSBuild
úkol. Pokud například vytváříte projekty kódu kromě řešení, měli byste ho použít.
Kde najdu další informace o nástroji MSBuild?
referenční dokumentace MSBuild
referenční příkazového řádku NÁSTROJE MSBuild
Jak vytvořím více konfigurací pro více platforem?
Na kartě Proměnné se ujistěte, že máte definované proměnné pro vaše konfigurace a platformy. Pokud chcete zadat více hodnot, oddělte je čárkami. Například:
- Pro aplikaci .NET můžete zadat
BuildConfiguration
s hodnotami ladění a vydané verze a můžete zadatBuildPlatform
s libovolnou hodnotou procesoru. - Pro aplikaci C++ můžete zadat
BuildConfiguration
s hodnotami ladění a vydané verze a můžete zadatBuildPlatform
s libovolnými hodnotami x86 a x64.
- Pro aplikaci .NET můžete zadat
Na kartě Možnosti vyberte
MultiConfiguration
a zadejteMultipliers
oddělené čárkami. Například:BuildConfiguration, BuildPlatform
VyberteParallel
, pokud chcete distribuovat úlohy (jednu pro každou kombinaci hodnot) do více agentů paralelně, pokud jsou k dispozici.Na kartě Sestavení vyberte tento krok a zadejte
Platform
aConfiguration
argumenty. Například:- Nástupiště:
$(BuildPlatform)
- Konfigurace:
$(BuildConfiguration)
- Nástupiště:
Můžu sestavovat soubory TFSBuild.proj?
Nelze vytvářet soubory TFSBuild.proj
. Tyto druhy souborů jsou generovány TFS 2005
a TFS 2008
. Tyto soubory obsahují úlohy a cíle jsou podporovány pouze pomocí sestavení XAML.
Řešení problémů
Tato část obsahuje tipy pro řešení běžných problémů, se kterými se uživatel může setkat při používání úlohy MSBuild
.
- sestavení selhalo s následující chybou: Při spuštění nástroje MSBuild došlo k vnitřní chybě.
Sestavení selhalo s následující chybou: Při spuštění nástroje MSBuild došlo k vnitřní chybě.
Možné příčiny
- Změna verze nástroje MSBuild.
- Problémy s rozšířením třetí strany
- Nové aktualizace sady Visual Studio, které můžou způsobit chybějící sestavení v agentu sestavení.
- Přesunuli nebo odstranili některé nezbytné balíčky NuGet.
Návrhy řešení potíží
- Spuštění kanálu s diagnostikou pro načtení podrobných protokolů
- Zkuste chybu reprodukovat místně
- Co dalšího můžu dělat?
Spuštění kanálu s diagnostikou pro načtení podrobných protokolů
Jednou z dostupných možností diagnostiky problému je podívat se na vygenerované protokoly. Protokoly kanálu můžete zobrazit výběrem příslušné úlohy a úlohy v souhrnu spuštění kanálu.
Pokud chcete získat protokoly spuštění kanálu Získání protokolů pro diagnostiku problémů
Můžete také nastavit a stáhnout přizpůsobený podrobný protokol, který vám pomůže s řešením potíží:
Kromě diagnostickýchprotokolůch
- diagnostické protokoly pracovního procesu
- diagnostické protokoly agenta
- další protokoly (prostředí a možnosti)
Pokuste se chybu reprodukovat místně.
Pokud používáte hostovaného agenta sestavení, můžete se pokusit chybu reprodukovat místně. Pomůže vám to zúžit, jestli je selhání výsledkem agenta sestavení nebo úlohy sestavení.
Spusťte stejný příkaz MSBuild
na místním počítači pomocí stejných argumentů. Referenční informace najdete v příkazu MSBuild.
Návod
Pokud můžete problém reprodukovat na místním počítači, pak dalším krokem je prozkoumat problém MSBuild.
Přečtěte si další informace o agentech hostovaných Microsoftem.
Nastavení vlastního agenta v místním prostředí a spuštění úloh sestavení:
- Agenti v místním prostředí – Windows
- Agenti v místním prostředí – Linux
- Agenti v místním prostředí – macOS
Co dalšího můžu dělat?
Některé chyby NÁSTROJE MSBuild jsou způsobené změnou v sadě Visual Studio, abyste mohli vyhledat vývojářské komunity sady Visual Studio zjistit, jestli se tento problém neohlásil. Vítáme také vaše otázky, návrhy a zpětnou vazbu.
Požadavky
Požadavek | Popis |
---|---|
Typy kanálů | YAML, klasické sestavení |
Běží na | Agent, DeploymentGroup |
požadavky | Agenti v místním prostředí musí mít schopnosti, které odpovídají následujícím požadavkům ke spouštění úloh, které používají tuto úlohu: msbuild |
možnosti | Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze. |
omezení příkazů | Jakýkoliv |
nastavitelné proměnné | Jakýkoliv |
Verze agenta | 1.95.0 nebo vyšší |
Kategorie úkolu | Stavět |