Sdílet prostřednictvím


MSBuild@1 – úloha MSBuild v1

Tuto úlohu použijte k sestavení pomocí nástroje 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.

Vstupy

solution - Projektu
string. Povinná hodnota. 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 (**). **.*proj Například vyhledá všechny soubory projektu MSBuild (.*proj) ve všech podadresářích.

Ujistěte se, že zadané projekty jsou 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ý jednomu z mapování na kartě Úložiště.
  • Pokud používáte Git, ujistěte se, že se projekt nachází ve vašem úložišti Git ve větvi, kterou vytváříte.

Tip

Pokud vytváříte řešení, doporučujeme místo úlohy MSBuild použít úlohu sestavení sady Visual Studio .


msbuildLocationMethod - Msbuild
string. Povolené hodnoty: version, location (Zadejte umístění). Výchozí hodnota: version.


msbuildVersion - Verze nástroje MSBuild
string. Nepovinný parametr. Použijte, když 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 nelze najít, použije se místo toho nejnovější nalezená verze. V agentu xbuild macOS se používá (Mono), pokud je verze nižší než 15.0.


msbuildVersion - Verze nástroje MSBuild
string. Nepovinný parametr. Použijte, když 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 nelze najít, použije se místo toho nejnovější nalezená verze. V agentu xbuild macOS se používá (Mono), pokud je verze nižší než 15.0.


msbuildArchitecture - Architektura NÁSTROJE MSBuild
string. Nepovinný parametr. Použijte, když 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ástroji MSBuild
string. Nepovinný parametr. Použijte, když msbuildLocationMethod = location.

Poskytne cestu k nástroji MSBuild.


platform - Platforma
string.

Tip

  • 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é (vyberte Allow v čase fronty) a odkazujte na ni jako $(BuildPlatform). Tímto způsobem můžete upravit platformu při vytváření fronty sestavení a povolit vytváření více konfigurací.

configuration - Konfigurace
string.

Tip

Deklarujte proměnnou sestavení, například BuildConfiguration na kartě Proměnné (vyberte Allow v čase fronty) a odkazujte na ni jako $(BuildConfiguration). Tímto způsobem můžete upravit platformu při vytváření fronty sestavení a povolit vytváření více konfigurací.


msbuildArguments - Argumenty nástroje MSBuild
string.

Určuje další argumenty předané nástroji MSBuild (ve Windows) a xbuild (v macOS).


clean - Čisté
boolean. Výchozí hodnota: false.

Nastavte na hodnotu False , pokud chcete, aby se toto sestavení vytvořilo jako přírůstkové. Toto nastavení může zkrátit dobu sestavení, zejména pokud je váš základ kódu velký. Tato možnost nemá žádný praktický účinek, pokud také nenastavíte Clean úložiště na Falsehodnotu . Pokud chcete znovu sestavit veškerý kód v projektech kódu, nastavte na True hodnotu . To je ekvivalent k argumentu MSBuild /target:clean . Další informace najdete v tématu Možnosti úložiště.


maximumCpuCount - Paralelní sestavení
boolean. Výchozí hodnota: false.

Pokud je cílová konfigurace NÁSTROJE MSBuild kompatibilní s paralelním sestavováním, můžete tento vstup zkontrolovat a předat /m přepínač do nástroje MSBuild (pouze Windows). Pokud vaše cílová konfigurace není kompatibilní s paralelním sestavováním, může kontrola této možnosti způsobit, že sestavení způsobí file-in-use chyby nebo občasná nebo nekonzistentní selhání sestavení.


restoreNugetPackages - Obnovení balíčků NuGet
boolean. Výchozí hodnota: false.

Tato možnost je zastaralá. Pokud chcete obnovit balíčky NuGet, přidejte před sestavením ú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ě vytvoří soubor protokolu (jenom Windows).


logFileVerbosity - Podrobnosti o souboru protokolu
string. Nepovinný parametr. Použijte, když createLogFile = true. Povolené hodnoty: quiet, minimal, normal, detailed, . diagnostic Výchozí hodnota: normal.

Určuje podrobnosti o souboru protokolu.


Možnosti ovládání úloh

Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace najdete v tématu Možnosti ovládacího prvku a běžné vlastnosti úlohy.

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:

  • /p:VisualStudioVersion Nastaví vlastnost za vás. To vynutí nástroj MSBuild použít 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 úlohu MSBuild . Měli byste ho například použít, pokud kromě řešení vytváříte projekty kódu.

Kde se dozvím další informace o nástroji MSBuild?

Referenční dokumentace nástroje MSBuild

Referenční dokumentace pro použití nástroje MSBuild v příkazovém řádku

Návody vytvářet více konfigurací pro více platforem?

  1. 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. Příklad:

    • Pro aplikaci .NET můžete zadat BuildConfiguration hodnoty ladění a verze a můžete zadat BuildPlatform libovolnou hodnotu procesoru.
    • Pro aplikaci C++ můžete zadat BuildConfiguration hodnoty ladění a verze a můžete zadat BuildPlatform libovolnými hodnotami x86 a x64.
  2. Na kartě Možnosti vyberte MultiConfiguration a zadejte Multipliers, oddělené čárkami. Například: BuildConfiguration, BuildPlatform Vyberte Parallel , pokud chcete distribuovat úlohy (jednu pro každou kombinaci hodnot) do více agentů paralelně, pokud jsou k dispozici.

  3. Na kartě Sestavení vyberte tento krok a zadejte Platform argumenty a Configuration . Příklad:

    • Platforma: $(BuildPlatform)
    • Konfigurace: $(BuildConfiguration)

Můžu vytvářet soubory TFSBuild.proj?

Nemůžete vytvářet TFSBuild.proj soubory. Tyto typy souborů jsou generovány pomocí TFS 2005 a TFS 2008. Tyto soubory obsahují úlohy a cíle se podporují pouze pomocí sestavení XAML.

Poradce při potížích

Tato část obsahuje tipy pro řešení běžných problémů, se kterými se může uživatel při používání MSBuild úlohy setkat.

Sestavení selhalo s následující chybou: Při spuštění nástroje MSBuild došlo k internímu selhání.

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é potřebné balíčky NuGet.
Návrhy řešení potíží
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 tak, že v souhrnu spuštění kanálu vyberete příslušnou úlohu a úlohu.

Získání protokolů 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ých protokolů kanálu můžete zkontrolovat také tyto další typy protokolů, které obsahují další informace, které vám pomůžou ladit a vyřešit problém:

Zkuste chybu reprodukovat místně.

Pokud používáte hostovaného agenta sestavení, můžete se pokusit chybu reprodukovat místně. To vám pomůže zúžit, jestli je selhání výsledkem agenta sestavení nebo úlohy sestavení.

Spusťte stejný MSBuild příkaz na místním počítači se stejnými argumenty. Referenční informace najdete v příkazu MSBuild .

Tip

Pokud můžete problém reprodukovat na místním počítači, dalším krokem je prozkoumání problému nástroje 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í:

Co dalšího mohu udělat?

Některé chyby nástroje MSBuild jsou způsobeny změnou v sadě Visual Studio, takže můžete vyhledat visual studio Developer Community a zjistit, jestli byl tento problém nahlášen. Uvítáme také vaše dotazy, návrhy a zpětnou vazbu.

Požadavky

Požadavek Popis
Typy kanálů YAML, klasické sestavení
Spustí se Agent, DeploymentGroup
Požadavky Agenti v místním prostředí musí mít funkce , které odpovídají následujícím požadavkům , aby bylo možné spouštět úlohy, které používají tuto úlohu: msbuild
Možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
Omezení příkazů Všechny
Nastavitelné proměnné Všechny
Verze agenta 1.95.0 nebo vyšší
Kategorie úloh Sestavení

Viz také