Neuerungen in MSBuild 17
In diesem Artikel werden wichtige Updates in MSBuild 17.0 beschrieben. Die detaillierten Versionshinweise für jede Version finden Sie unter MSBuild-Versionen.
MSBuild 17.0 wurde mit Visual Studio 2022 und .NET 6.0ausgeliefert.
Pfad geändert
MSBuild wird im Ordner \Current unter jeder Version von Visual Studio installiert, und die ausführbaren Dateien befinden sich im Unterordner \Bin. Beispielsweise ist der Pfad für MSBuild.exe, der mit Visual Studio 2022 Community installiert wurde, C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe. Sie können auch das folgende PowerShell-Modul verwenden, um MSBuild zu finden: vssetup.powershell.
Geänderte Eigenschaften
Die folgenden MSBuild-Eigenschaften wurden aufgrund der neuen Versionsnummer aktualisiert.
MSBuildToolsVersion
verbleibt für diese Version der Tools „Current“. Die Assemblyversion ist identisch mit Visual Studio 2017 und Visual Studio 2019, also 15.1.0.0.VisualStudioVersion
für diese Version der Tools lautet "17.0"
64-Bit
MSBuild.exe hatte zuvor sowohl 32-Bit- als auch 64-Bit-Versionen, aber jetzt ist die 64-Bit-Version der Standard. Visual Studio 2022 verwendet die 64-Bit-Version von MSBuild für alle Builds. Die 32-Bit-Version ist weiterhin verfügbar, es wird jedoch empfohlen, alle Builds auf die 64-Bit-Version zu wechseln.
Für Aufgabenbesitzer bedeutet dies, dass MSBuild beim Laden Ihrer Aufgabe versucht, sie in einem 64-Bit-Prozess zu laden. Wir empfehlen, Ihre Aufgaben zu aktualisieren, damit sie in einem 64-Bit-Prozess ausgeführt werden. Aus Kompatibilitätsgründen können Sie jedoch MSBuild so konfigurieren, dass Ihre Aufgabe nur als 32-Bit in der UsingTask-ausgeführt wird.
Leistungsverbesserungen
MSBuild ist schneller! Der Fokus dieser Version war die Verbesserung der Leistung für viele gängige Szenarien. MSBuild 17.0 kann größere Projekte schneller erstellen.
.NET-Versionen
MSBuild (und Visual Studio) zielen jetzt auf .NET Framework 4.7.2 und .NET 6.0 ab. Wenn Sie neue MSBuild-API-Features verwenden möchten, muss Ihre Assembly auch ein Upgrade durchführen, aber vorhandener Code funktioniert weiterhin.
Protokolle
Binäre Protokolldateien sind kleiner und haben mehr Informationen.
Probieren Sie in MSBuild 17.8 und höher die neue Terminal logger (-terminalLogger
- oder -tl
-Option in der Befehlszeile) aus, um die Konsolenausgabe zu verbessern.
Breaking Changes
- Die Methode
GetType()
kann nicht mehr in Eigenschaftenfunktionen aufgerufen werden. - MSBuild für .NET zielt auf .NET 6 ab.
Andere Verhaltensänderungen
MSBuildCopyContentTransitively
ist jetzt standardmäßig aktiviert, um die Konsistenz der Ausgabeordner bei inkrementellen Builds sicherzustellen.
Weitere Änderungen in dieser Version finden Sie in den detaillierten Versionshinweisen und änderungen in MSBuild-Versionen, die Sie deaktivieren können, finden Sie unter Änderungswellen.