Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
.NET 7 enthält generische mathematische APIs, die static abstract
Schnittstellenmitglieder für primitive Typen verwenden, wie z. B. Int32. Frühere Versionen des C++/CLI-Compilers waren nicht kompatibel zu solchen Mitgliedern. Da diese Member für viele primitive Typen verwendet werden, treten bei der Kompilierung mit dem Ziel net7.0
Fehler auf, auch wenn Sie die generischen mathematischen Features nicht direkt verwenden.
Über C++/CLI hinaus ist es auch möglich, dass die Einführung von static abstract
Schnittstellenelementen in primitiven System Typen Probleme in anderen Tools anzeigt, die nicht mit der Verwendung dieses neuen Sprachkonstrukts vorwärts kompatibel sind. Wenn Sie ein Toolautor sind, müssen Sie alle von dieser Änderung betroffenen Tools aktualisieren, um die Verwendung von static abstract
Schnittstellenmitgliedern zu berücksichtigen. Wenn Sie Hilfe benötigen, geben Sie ein Problem im Dotnet/Runtime-Repository an, um Anleitungen anzufordern.
Vorheriges Verhalten
Das Kompilieren von .NET-Projekten mit C++/CLI hat bisher keine Fehler im Zusammenhang mit Membern in Primitiventypen System ergeben.
Neues Verhalten
Das Kompilieren eines net7.0
Projekts mit C++/CLI in einer Version von Visual Studio vor Version 17.2 führt zu vielen Fehlern, die diesem Beispiel ähneln:
error C2253: 'System.Int32.Parse': pure specifier or abstract override specifier only allowed on virtual function
Abgesehen vom Upgrade gibt es keine Möglichkeit, diesen Compilerfehler zu umgehen. Er wird aufgrund von static abstract
-Schnittstellenmembern in primitiven System-Typen generiert. Wenn Sie ein Upgrade auf Visual Studio 2022, Version 17.2, durchführen, treten die Kompilierungsfehler nicht mehr auf.
Implizit implementierte static abstract
Schnittstellenmitglieder können aufgerufen werden, aber selbst mit Visual Studio 2022 Version 17.2 unterstützt C++/CLI das Aufrufen explizit implementierter static abstract
Schnittstellenmitglieder nicht.
Eingeführte Version
.NET 7
Art der einschneidenden Änderung
Diese Änderung kann sich auf die Quellkompatibilität auswirken.
Grund für Änderung
.NET 7 enthält die neuen API-Definitionen für den generischen mathematischen Featuresatz. Diese APIs wurden in .NET 6 als Vorschauversion eingeführt und erforderten, dass Sie das System.Runtime.Experimental
Paket installieren, um Zugriff zu erhalten. Ab .NET 7 sind diese generischen Mathematik-APIs direkt enthalten.
Empfohlene Aktion
Um weiterhin C++/CLI mit .NET 7 zu verwenden, aktualisieren Sie auf Visual Studio 2022, Version 17.2 oder eine höhere Version. Möglicherweise müssen Sie auch das Plattformtoolset auf v143 festlegen.
Wenn Sie .NET 7 beim Upgrade auf .NET 8 übersprungen haben, führen Sie ein Upgrade auf Visual Studio 2022, Version 17.8 oder höher, und plattformtoolset v143 oder höher durch.
Betroffene APIs
Nicht verfügbar