Delen via


Wat is er nieuw in MSBuild 17

In dit artikel worden belangrijke updates in MSBuild 17.0 beschreven. Zie MSBuild-releasesvoor de gedetailleerde releaseopmerkingen voor elke versie.

MSBuild 17.0 geleverd met Visual Studio 2022 en .NET 6.0.

Pad gewijzigd

MSBuild wordt geïnstalleerd in de map \Current onder elke versie van Visual Studio en de uitvoerbare bestanden bevinden zich in de submap \Bin. Het pad naar MSBuild.exe geïnstalleerd met Visual Studio 2022 Community is bijvoorbeeld C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe U kunt ook de volgende PowerShell-module gebruiken om MSBuild te vinden: vssetup.powershell.

Gewijzigde eigenschappen

De volgende MSBuild-eigenschappen zijn bijgewerkt vanwege het nieuwe versienummer.

  • MSBuildToolsVersion voor deze versie van de tools blijft actueel. De assemblyversie is hetzelfde als in Visual Studio 2017 en Visual Studio 2019, namelijk 15.1.0.0.

  • VisualStudioVersion voor deze versie van de hulpprogramma's is '17.0'

64-bit

MSBuild.exe eerder zowel 32-bits als 64-bits versies had, maar nu is de 64-bits versie de standaardversie. Visual Studio 2022 maakt gebruik van de 64-bits versie van MSBuild voor alle builds. De 32-bits versie is nog steeds beschikbaar, maar we raden u aan alle builds over te schakelen naar de 64-bits versie.

Voor taakeigenaren betekent dit dat wanneer MSBuild uw taak laadt, deze in een 64-bits proces probeert te laden. Het is raadzaam om uw taken zodanig bij te werken dat ze in een 64-bits proces draaien, maar voor compatibiliteit kunt u aan MSBuild aangeven dat uw taak alleen als 32-bits kan draaien in hun UsingTask-.

Prestatieverbeteringen

MSBuild is sneller! De focus van deze release is geweest om de prestaties voor veel veelvoorkomende scenario's te verbeteren. MSBuild 17.0 kan grotere projecten bouwen, sneller.

.NET-versies

MSBuild (en Visual Studio) is nu gericht op .NET Framework 4.7.2 en .NET 6.0. Als u nieuwe MSBuild API-functies wilt gebruiken, moet uw assembly ook upgraden, maar de bestaande code blijft werken.

Logboeken

Binaire logboeken zijn kleiner en hebben meer informatie.

Probeer in MSBuild 17.8 en hoger de nieuwe Terminal Logger (-terminalLogger of -tl optie op de opdrachtregel) voor verbeterde console-uitvoer.

Belangrijke wijzigingen

  • De methode GetType() kan niet meer worden aangeroepen in eigenschapsfuncties.
  • MSBuild voor .NET is gericht op .NET 6.

Andere gedragswijzigingen

  • MSBuildCopyContentTransitively is nu standaard ingeschakeld, waardoor consistentie in uitvoermappen op incrementele builds wordt gegarandeerd.

Zie voor meer wijzigingen in deze versie de gedetailleerde releaseopmerkingen, en voor wijzigingen in MSBuild-versies waarvan u zich kunt afmelden, zie wijzigingsgolven.