Novinky v nástroji MSBuild 17.0

Tento článek popisuje významné aktualizace nástroje MSBuild 17.0. Podrobné poznámky k verzi najdete v tématu MSBuild 17.0.0.

MSBuild 17.0 je dodáván se sadou Visual Studio 2022 a .NET 6.0.

Změněná cesta

Nástroj MSBuild je nainstalován ve složce \Current pod každou verzí sady Visual Studio a spustitelné soubory jsou v podsložce \Bin . Například cesta k MSBuild.exe nainstalované se sadou Visual Studio 2022 Community je C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe Můžete také použít následující modul PowerShellu k vyhledání nástroje MSBuild: vssetup.powershell.

Změněné vlastnosti

Následující vlastnosti nástroje MSBuild byly aktualizovány z důvodu nového čísla verze.

  • MSBuildToolsVersion pro tuto verzi nástrojů zůstává Aktuální. Verze sestavení je stejná jako v sadě Visual Studio 2017 a Visual Studio 2019, což je 15.1.0.0.

  • VisualStudioVersion pro tuto verzi nástrojů je 17.0.

64bitová

MSBuild.exe dříve měl 32bitovou i 64bitovou verzi, ale nyní je 64bitová verze výchozí. Visual Studio 2022 používá 64bitovou verzi nástroje MSBuild pro všechna sestavení. 32bitová verze je stále dostupná, ale doporučujeme přepnout všechna sestavení na 64bitovou verzi.

U vlastníků úloh to znamená, že když nástroj MSBuild načte úlohu, pokusí se ji načíst v 64bitovém procesu. Doporučujeme zvážit aktualizaci úloh tak, aby běžely v 64bitovém procesu, ale kvůli kompatibilitě můžete nástroji MSBuild sdělit, že se vaše úloha spouští pouze jako 32bitová verze v jejich usingTask.

Zlepšení výkonu

MSBuild je rychlejší! Cílem této verze bylo zlepšit výkon pro mnoho běžných scénářů. MSBuild 17.0 může vytvářet větší projekty, rychleji.

Verze .NET

MSBuild (a Visual Studio) teď cílí na rozhraní .NET Framework 4.7.2 a .NET 6.0. Pokud chcete používat nové funkce rozhraní API nástroje MSBuild, musíte upgradovat také sestavení, ale stávající kód bude fungovat i nadále.

Protokoly

Binární protokoly jsou menší a obsahují více informací.

Změny způsobující chyby

  • Metoda GetType() již nelze volat ve funkcích vlastností.
  • MSBuild pro .NET cílí na .NET 6.

Jiné změny chování

  • MSBuildCopyContentTransitively je teď ve výchozím nastavení zapnutá a zajišťuje konzistenci ve výstupních složkách v přírůstkových buildech.

Další změny v této verzi najdete v podrobných poznámkách k verzi a o změnách ve verzích NÁSTROJE MSBuild, ze které se můžete odhlásit, viz vlny změn.