Sdílet prostřednictvím


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ěr Allow 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?

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

    • Pro aplikaci .NET můžete zadat BuildConfiguration s hodnotami ladění a vydané verze a můžete zadat BuildPlatform s libovolnou hodnotou procesoru.
    • Pro aplikaci C++ můžete zadat BuildConfiguration s hodnotami ladění a vydané verze a můžete zadat BuildPlatform s libovolnými hodnotami x86 a x64.
  2. Na kartě Možnosti vyberte MultiConfiguration a zadejte Multipliersoddě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 a Configuration argumenty. Například:

    • Nástupiště: $(BuildPlatform)
    • Konfigurace: $(BuildConfiguration)

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ě.

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ů

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í:

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

Viz také