Nyheter i MSBuild 17
Den här artikeln beskriver viktiga uppdateringar i MSBuild 17.0. Detaljerade versionsanteckningar för varje version finns i MSBuild-utgåvor.
MSBuild 17.0 levereras med Visual Studio 2022 och .NET 6.0.
Ändrad sökväg
MSBuild installeras i mappen \Current under varje version av Visual Studio och körbara filer finns i undermappen \Bin. Till exempel är sökvägen till MSBuild.exe installerad med Visual Studio 2022 Community C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe, och du kan också använda den följande PowerShell-modulen för att hitta MSBuild: vssetup.powershell.
Ändrade egenskaper
Följande MSBuild-egenskaper har uppdaterats på grund av det nya versionsnumret.
MSBuildToolsVersion
för den här versionen av verktygen förblir "Aktuell". Sammansättningsversionen är densamma som i Visual Studio 2017 och Visual Studio 2019, som är 15.1.0.0.VisualStudioVersion
för den här versionen av verktygen är "17.0"
64-bit
MSBuild.exe tidigare hade både 32- och 64-bitarsversioner, men nu är 64-bitarsversionen standard. Visual Studio 2022 använder 64-bitarsversionen av MSBuild för alla versioner. 32-bitarsversionen är fortfarande tillgänglig, men vi rekommenderar att du byter alla versioner till 64-bitarsversionen.
För uppgiftsägare innebär det att när MSBuild läser in din uppgift kommer den att försöka läsa in den i en 64-bitarsprocess. Vi rekommenderar att du överväger att uppdatera dina uppgifter så att de körs i en 64-bitarsprocess, men för kompatibilitet kan du berätta för MSBuild att uppgiften endast körs som 32-bitars i deras UsingTask.
Prestandaförbättringar
MSBuild är snabbare! Fokus för den här versionen har varit att förbättra prestanda för många vanliga scenarier. MSBuild 17.0 kan skapa större projekt snabbare.
.NET-versioner
MSBuild (och Visual Studio) riktar sig nu mot .NET Framework 4.7.2 och .NET 6.0. Om du vill använda nya MSBuild API-funktioner måste din sammansättning också uppgraderas, men befintlig kod fortsätter att fungera.
Loggar
Binära loggar är mindre och har mer information.
I MSBuild 17.8 och senare provar du det nya terminalloggningsalternativet (-terminalLogger
eller -tl
på kommandoraden) för att få bättre konsolutdata.
Omfattande ändringar
- Metoden
GetType()
kan inte längre anropas i egenskapsfunktioner. - MSBuild för .NET riktar in sig på .NET 6.
Andra beteendeändringar
-
MSBuildCopyContentTransitively
är nu aktiverat som standard, vilket säkerställer konsekvens i utdata-mappar vid inkrementella byggen.
Fler ändringar i den här versionen finns i de detaljerade versionsanteckningarna och för ändringar i MSBuild-versioner som du kan välja bort, se ändringsvågor .