Kompatibilitástörő változások a .NET 10-ben

Ha egy alkalmazást a .NET 10-be migrál, az itt felsorolt kompatibilitástörő változások hatással lehetnek Önre. A módosítások technológiai terület szerint vannak csoportosítva, például ASP.NET Core vagy Windows Forms.

Ez a cikk az egyes kompatibilitástörő változásokat binárisan nem kompatibilisként vagy nem kompatibilis forrásként, illetve viselkedési változásként kategorizálja:

  • Bináris inkompatibilis – Ha az új futtatókörnyezeten vagy összetevőn fut, a meglévő bináris fájlok működésbeli kompatibilitástörő változásba ütközhetnek, például nem tölthetők be vagy hajthatók végre, és ha igen, újrafordítást igényelnek.

  • Forrás nem kompatibilis – Ha újra fordítják az új SDK-val vagy összetevővel, vagy az új futtatókörnyezet célzásával, előfordulhat, hogy a meglévő forráskód sikeres fordításához módosításokra van szükség.

  • Viselkedésbeli változás – A meglévő kód és bináris fájlok futásidőben eltérően viselkedhetnek. Ha az új viselkedés nem kívánatos, a meglévő kódot frissíteni és újra kell lefordítani.

Megjegyzés:

Ez a cikk egy folyamatban lévő munka. Ez nem a .NET 10 kompatibilitástörő változásainak teljes listája.

ASP.NET Core

Lásd a ASP.NET Core 10 kompatibilitástörő változásait.

Containers

Cím A módosítás típusa
Az alapértelmezett .NET-rendszerképek az Ubuntu-t használják Viselkedésbeli változás

Alapvető .NET-kódtárak

Cím A módosítás típusa
API-k elavulása A forrás nem kompatibilis
ActivitySource.CreateActivity és ActivitySource.StartActivity viselkedésének módosítása Viselkedésbeli változás
Az Arm64 SVE nem hibás terhelései maszkot igényelnek Bináris/forrás inkompatibilis
A BufferedStream.WriteByte már nem végez implicit kiürítést Viselkedésbeli változás
C# 14 túlterhelés feloldása span paraméterekkel Viselkedésbeli változás
Konzisztens áthelyezési viselkedés a generikus matematikában Viselkedésbeli változás
A W3C szabványra frissített alapértelmezett nyomkövetési környezet propagátora Viselkedésbeli változás
A DriveInfo.DriveFormat Linux fájlrendszertípusokat ad vissza Viselkedésbeli változás
A DynamicallyAccessedMembers annotációt eltávolították a DefaultValueAttribute konstruktorból Bináris/forrás inkompatibilis
Explicit struct méret nem engedélyezett az InlineArray-vel Bináris inkompatibilis
A FilePatternMatch.Stem nem nullálhatóvá vált Forráskompatibilitási probléma/viselkedésváltozás
A GnuTarEntry és a PaxTarEntry alapértelmezés szerint már nem tartalmazza az atime-ot és a ctime-ot. Viselkedésbeli változás
Az LDAP DirectoryControl elemzése mostantól szigorúbb Viselkedésbeli változás
MacCatalyst-verzió normalizálása Viselkedésbeli változás
A .NET-futtatókörnyezet már nem biztosít alapértelmezett végpontjelkezelőket Viselkedésbeli változás
System.Linq.AsyncEnumerable szerepel az alapvető kódtárakban A forrás nem kompatibilis
Type.MakeGenericSignatureType argumentum érvényesítése Viselkedésbeli változás

Kriptográfia

Cím A módosítás típusa
CompositeMLDsa frissítve a 08-as tervezetre Viselkedésbeli változás
A CoseSigner.Key null értékű lehet Viselkedési/forrásösszeegyeztethetetlen változás
MLDsa és SlhDsa "SecretKey" tagok átnevezve A forrás nem kompatibilis
Az OpenSSL titkosítási primitívjei nem támogatottak macOS rendszeren Viselkedésbeli változás
OpenSSL 1.1.1 vagy újabb verzió szükséges a Unixon Viselkedésbeli változás
Az X500DistinguishedName érvényesítése szigorúbb Viselkedésbeli változás
Az X509Certificate és a PublicKey kulcsparaméterek null értékűek lehetnek Viselkedési/forrásösszeegyeztethetetlen változás
A környezeti változó átnevezve DOTNET_OPENSSL_VERSION_OVERRIDE Viselkedésbeli változás

Entity Framework Core (entitás keretrendszer mag)

Lásd az EF Core 10 kompatibilitástörő változásait.

Extensions

Cím A módosítás típusa
A BackgroundService az összes ExecuteAsync-et feladatként futtatja Viselkedésbeli változás
A GetKeyedService() és a GetKeyedServices() hibáinak javítása az AnyKey használatával Viselkedésbeli változás
A konfigurációban megőrzött null értékek Viselkedésbeli változás
Az üzenet már nem duplikálva van a konzolnapló kimenetében Viselkedésbeli változás
ProviderAliasAttribute áthelyezve a Microsoft.Extensions.Logging.Abstractions assemblybe A forrás nem kompatibilis
Eltávolítottuk a DynamicallyAccessedMembers megjegyzést a vágásbiztonság nélküli Microsoft.Extensions.Configuration kódból Bináris inkompatibilis

Globalization

Cím A módosítás típusa
Átnevezték a környezeti változót DOTNET_ICU_VERSION_OVERRIDE-re Viselkedésbeli változás

Eszköz telepítése

Cím A módosítás típusa
A dotnet.acquire API for VS Code már nem mindig tölti le a legújabb verziót Viselkedésbeli változás

Interop

Cím A módosítás típusa
Az IDispatchEx COM-objektum IReflect-hez való beállítása sikertelen Viselkedésbeli változás
Az egyfájlos alkalmazások már nem keresnek natív kódtárakat a végrehajtható címtárban Viselkedésbeli változás
A DllImportSearchPath.AssemblyDirectory megadása azt eredményezi, hogy csak az összeállítási könyvtárban keres Viselkedésbeli változás

hálózat

Cím A módosítás típusa
A HTTP/3-támogatás alapértelmezés szerint le van tiltva a PublishTrimmed használatával A forrás nem kompatibilis
Az MailAddress érvényesítést biztosít az egymást követő pontok ellenőrzésére Viselkedésbeli változás
A http-válaszok streamelése alapértelmezés szerint engedélyezve van a böngésző HTTP-ügyfeleiben Viselkedésbeli változás
Uri a hosszkorlátok el lettek távolítva Viselkedésbeli változás

Reflection

Cím A módosítás típusa Bevezetett verzió
További korlátozott megjegyzések az InvokeMember/FindMembers/DeclaredMembers szolgáltatásban Viselkedési/forrás összeférhetetlen
Type.MakeGenericSignatureType argumentum érvényesítése Viselkedésbeli változás

SDK és MSBuild

Cím A módosítás típusa
A .NET CLI --interactive alapértelmezett konfiguráció a true felhasználói forgatókönyvekben Viselkedésbeli változás
dotnet CLI-parancsok naplóznak nem parancsra vonatkozó adatokat az stderrben Viselkedésbeli változás
A .NET-eszközök csomagolása RuntimeIdentifier-specifikus eszközcsomagokat hoz létre Viselkedésbeli változás
A munkaterhelés alapértelmezett konfigurációja a "laza jegyzékek" módból a "feladatkészletek" módra Viselkedésbeli változás
DefineConstants a kiértékeléskor nem elérhető cél-keretrendszerek esetében Viselkedésbeli változás
Az EnableDynamicNativeInstrumentation alapértelmezés szerint false értékű a kódlefedettségnél Viselkedésbeli változás
dnx.ps1 fájl már nem szerepel a .NET SDK-ban A forrás nem kompatibilis
A fájlszintű irányelvekben szereplő dupla idézőjelek nem engedélyezettek A forrás nem kompatibilis
dotnet new sln alapértelmezés szerint SLNX fájlformátum Viselkedésbeli változás
dotnet package list visszaállítást hajt végre Viselkedésbeli változás
dotnet restore tranzitív csomagok naplózása Viselkedésbeli változás
dotnet tool install --local alapértelmezés szerint jegyzékfájlt hoz létre Viselkedésbeli változás
dotnet watch a naplózást stdout helyett stderrbe irányítja Viselkedésbeli változás
project.json-t nem támogatja dotnet restore A forrás nem kompatibilis
Az SHA-1 ujjlenyomat-támogatása elavult dotnet nuget sign Viselkedésbeli változás
MSBUILDCUSTOMBUILDEVENTWARNING menekülési nyílás eltávolítva Viselkedésbeli változás
MSBuild egyéni kulturális erőforrás-kezelés Viselkedésbeli változás
NU1510 hibaüzenet jelenik meg a NuGet által eltávolított közvetlen hivatkozásokra A forrás nem kompatibilis
A futtatókörnyezeti eszközök nélküli NuGet-csomagok nem szerepelnek a deps.json A forrás nem kompatibilis
A Verzió nélküli PackageReference hibát jelez Viselkedésbeli változás
PrunePackageReference privatizálja a közvetlen levágható hivatkozásokat Viselkedésbeli változás
HTTP-figyelmeztetések hibákká léptetve dotnet package list és dotnet package search Viselkedési/forrásösszeegyeztethetetlen változás
NUGET_ENABLE_ENHANCED_HTTP_RETRY környezeti változó el lett távolítva Viselkedésbeli változás
A NuGet hibát naplóz érvénytelen csomagazonosítók esetén Viselkedésbeli változás
ToolCommandName nincs beállítva nem eszközcsomagokhoz A forrás nem kompatibilis

Szerializáció

Cím A módosítás típusa
A System.Text.Json tulajdonságnévütközéseket keres Viselkedésbeli változás
Az XmlSerializer többé nem hagyja figyelmen kívül az ElavultAttribute címkével jelölt tulajdonságokat Viselkedésbeli változás

Windows Forms

Cím A módosítás típusa
API-k elavulása A forrás nem kompatibilis
A WPF-et és a WinForms-t egyaránt hivatkozó alkalmazásoknak egyértelműsíteniük kell a MenuItem és a ContextMenu típusokat A forrás nem kompatibilis
Átnevezett paraméter a HtmlElement.InsertAdjacentElement fájlban A forrás nem kompatibilis
TreeView jelölőnégyzet kép csonkolása Viselkedésbeli változás
A StatusStrip alapértelmezés szerint a System RenderMode-t használja Viselkedésbeli változás
A System.Drawing OutOfMemoryException ExternalException-é változott Viselkedésbeli változás

Windows Presentation Foundation (WPF)

Cím A módosítás típusa
Az üres ColumnDefinitions és RowDefinitions nem megengedett A forrás nem kompatibilis
A DynamicResource helytelen használata alkalmazás összeomlását okozza Forráskompatibilitási probléma/viselkedésváltozás