Dela via


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 .