Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A .NET 7 általános matematikai API-kat tartalmaz, amelyek felülettagokat használnak static abstract primitív típusok esetén, például Int32. A C++/CLI fordító korábbi verziói nem voltak kompatibilisek az ilyen tagokkal. Mivel ezeket a tagokat számos primitív típussal használják, fordítási hibák léphetnek fel, amikor a net7.0-t célozza meg, még akkor is, ha közvetlenül nem használja az általános matematikai funkciókat.
A C++/CLI-n túl az is lehetséges, hogy az interfésztagok bevezetése static abstract primitív System típusok esetén olyan egyéb eszközökkel is problémákat fog felszínre hozni, amelyek nem kompatibilisek az új nyelvi szerkezet használatával. Ha Ön eszközszerző, frissítenie kell a módosítás által érintett eszközöket, hogy megfeleljen a felülettagok static abstract használatának. Ha segítségre van szüksége, küldjön egy hibát a dotnet/runtime adattárban , és kérjen útmutatást.
Előző viselkedés
Korábban a .NET-projektek C++/CLI használatával történő összeállítása nem eredményezett a kezdetleges System típusok tagjaival kapcsolatos hibákat.
Új viselkedés
Ha egy net7.0 projektet a Visual Studio 17.2-es verziója előtt C++/CLI használatával állít össze, az a példához hasonló számos hibát eredményez:
error C2253: 'System.Int32.Parse': pure specifier or abstract override specifier only allowed on virtual function
A frissítésen kívül nem lehet megkerülni ezt a fordítóhibát. Ez az interfész static abstract tagjai miatt jön létre a primitív System típusokon. A Visual Studio 2022 17.2-es verziójára való frissítéskor a fordítási hibák már nem fordulnak elő.
Az implicit módon implementált static abstract felülettagok meghívhatók, de még a Visual Studio 2022 17.2-es verziójával sem támogatja a C++/CLI a kifejezetten implementált static abstract felülettagok meghívását.
Bevezetett verzió
.NET 7
A kompatibilitástörő változás típusa
Ez a módosítás hatással lehet a forráskompatibilitásra.
A változás oka
A .NET 7 tartalmazza az általános matematikai funkciókészlet új API-definícióit. Ezek az API-k előzetes verzióként jelentek meg a .NET 6-ban, és a csomag telepítéséhez szükséges volt a System.Runtime.Experimental hozzáférés. A .NET 7-től kezdődően ezek az általános matematikai API-k a "dobozban" szerepelnek.
Javasolt művelet
Ha folytatni szeretné a C++/CLI használatát a .NET 7-tel, frissítsen a Visual Studio 2022 17.2-es vagy újabb verziójára. Előfordulhat, hogy a platformeszközkészletet v143-ra kell állítania.
Ha kihagyta a .NET 7-et, amikor a .NET 8-ra frissített, frissítsen a Visual Studio 2022 17.8-s vagy újabb verziójára, valamint a 143-es vagy újabb verziójú platformeszközökre .
Érintett API-k
Nincs adat.