MSBuild unterstützt das Aufrufen von GetType() nicht mehr

MSBuild 17 unterstützt das Aufrufen der Instanzmethode GetType() in Eigenschaftsfunktionen nicht mehr. Diese Methode ermöglichte unvorhersehbare Codeausführungen während der Auswertung und konnte dazu führen, dass Visual Studio hängt.

Eingeführt in Version

.NET SDK 6.0.100-rc1

Vorheriges Verhalten

GetType()-Aufrufe in MSBuild-Eigenschaftsfunktionen wurden ausgeführt und führten manchmal zu unvorhersehbaren Verhaltensweisen in Visual Studio.

Neues Verhalten

Wenn Sie ab .NET SDK 6 GetType() in einer MSBuild-Eigenschaftsfunktion aufrufen, wird während der Projektauswertung der folgende Kompilierzeitfehler angezeigt:

The function „GetType“ on type „System.String“ is not available for execution as an MSBuild property function. (Die Funktion „GetType“ für den Typ „System.String“ ist für die Ausführung als MSBuild-Eigenschaftsfunktion nicht verfügbar.)

Ändern der Kategorie

Diese Änderung kann sich auf die Quellkompatibilität auswirken.

Grund für die Änderung

Diese Funktionalität wurde nicht dokumentiert oder häufig verwendet. Sie führte zu Leistungs- und Zuverlässigkeitsproblemen beim Laden von Projekten, insbesondere in Visual Studio.

Dieses Muster wurde nur im CBT-System verwendet, das als veraltet gilt.

Ersetzen Sie alle Aufrufe von GetType() durch alternative MSBuild-Logik.

Betroffene APIs