Sdílet prostřednictvím


Zásadní změny v .NET 10

Pokud migrujete aplikaci na .NET 10, můžou vás tyto zásadní změny ovlivnit. Změny jsou seskupené podle oblasti technologií, jako je ASP.NET Core nebo Windows Forms.

Tento článek kategorizuje každou změnu způsobující chybu jako binární nekompatibilní nebo nekompatibilní zdroj nebo jako behaviorální změnu:

  • Binární nekompatibilní – Při spuštění s novým runtime nebo komponentou mohou existující binární soubory narazit na kritickou změnu chování, například selhání při načítání nebo spuštění, a pokud ano, vyžadují rekompilaci.

  • Zdroj nekompatibilní – Při opětovném zkompilování pomocí nové sady SDK nebo komponenty nebo cílení na nový modul runtime může stávající zdrojový kód vyžadovat úspěšné kompilace zdrojových změn.

  • Změna chování – Existující kód a binární soubory se můžou chovat jinak za běhu. Pokud je nové chování nežádoucí, stávající kód bude potřeba aktualizovat a znovu zkompilovat.

Note

Tento článek probíhá. Nejedná se o úplný seznam zásadních změn v .NET 10.

ASP.NET Core

Title Typ změny
Přesměrování přihlášení k souborům cookie pro známé koncové body rozhraní API Změna chování
Vyřazení metody rozšíření WithOpenApi Nekompatibilní zdroj
Diagnostika výjimek potlačená, když TryHandleAsync vrátí hodnotu true Změna chování
IActionContextAccessor a ActionContextAccessor jsou zastaralé Nekompatibilní/behaviorální změna zdroje
Vlastnost IncludeOpenAPIAnalyzers a analyzátory rozhraní API MVC jsou zastaralé Nekompatibilní zdroj
IpNetwork a ForwardedHeadersOptions.KnownNetworks jsou zastaralé Nekompatibilní zdroj
Balíček Microsoft.Extensions.ApiDescription.Client je zastaralý Nekompatibilní zdroj
Razor Kompilace modulu runtime je zastaralá. Nekompatibilní zdroj
WebHostBuilder, IWebHost a WebHost jsou zastaralé Nekompatibilní zdroj

Containers

Title Typ změny
Výchozí image .NET používají Ubuntu Změna chování

Základní knihovny .NET

Title Typ změny
Změna chování ActivitySource.CreateActivity a ActivitySource.StartActivity Změna chování
Méně závažná zátěž Arm64 SVE vyžaduje masku Binární nebo zdroj nekompatibilní
BufferedStream.WriteByte už neprovádí implicitní vyprázdnění. Změna chování
Řešení přetížení v C# 14 s parametry typu span Změna chování
Konzistentní chování posunu v obecné matematikě Změna chování
Výchozí propagátor kontextu sledování aktualizován na standard W3C Změna chování
DriveInfo.DriveFormat vrátí typy systému souborů Linuxu. Změna chování
DynamickyaccessedMembers anotace odebraná z atributu DefaultValueAttribute ctor Binární nebo zdroj nekompatibilní
Explicitní velikost struktury nepovolená pomocí inlineArray Binární nekompatibilní
FilePatternMatch.Stem se změnil na hodnotu non-nullable Nekompatibilní/behaviorální změna zdroje
GnuTarEntry a PaxTarEntry už ve výchozím nastavení neobsahují atime a ctime. Změna chování
Analýza Adresáře LDAP je teď přísnější Změna chování
Normalizace verzí MacCatalyst Změna chování
Modul runtime .NET již neposkytuje výchozí obslužné rutiny signálu ukončení. Změna chování
System.Linq.AsyncEnumerable zahrnuto v základních knihovnách Nekompatibilní zdroj
Ověření argumentu Type.MakeGenericSignatureType Změna chování

Cryptography

Title Typ změny
CompositeMLDsa aktualizováno na verzi návrhu 08 Změna chování
CoseSigner.Key může mít hodnotu null. Behaviorální/zdroj nekompatibilní změna
Přejmenování členů MLDsa a SlhDsa SecretKey Nekompatibilní zdroj
Kryptografické primitivy OpenSSL se v macOS nepodporují. Změna chování
OpenSSL 1.1.1 nebo novější vyžadované v systému Unix Změna chování
Ověření X500DistinguishedName je přísnější Změna chování
Parametry klíče X509Certificate a PublicKey můžou mít hodnotu null. Behaviorální/zdroj nekompatibilní změna
Proměnná prostředí byla přejmenována na DOTNET_OPENSSL_VERSION_OVERRIDE Změna chování

Entity Framework Core

Zásadní změny v EF Core 10

Extensions

Title Typ změny
BackgroundService spouští všechny executeAsync jako úlohu. Změna chování
Oprava problémů s GetKeyedService() a GetKeyedServices() pomocí AnyKey Změna chování
Hodnoty null zachované v konfiguraci Změna chování
Zpráva se už ve výstupu protokolu konzoly nezdvojila Změna chování
ProviderAliasAttribute přesunuto do sestavení Microsoft.Extensions.Logging.Abstractions Nekompatibilní zdroj
Byla odstraněna anotace DynamickyAccessedMembers z kódu Microsoft.Extensions.Configuration, který není bezpečný pro ořezávání Binární nekompatibilní

Globalization

Title Typ změny
Proměnná prostředí byla přejmenována na DOTNET_ICU_VERSION_OVERRIDE Změna chování

Nástroj pro instalaci

Title Typ změny
dotnet.acquire API pro VS Code už ne vždy stahuje nejnovější Změna chování

Interop

Title Typ změny
Přetypování COM objektu IDispatchEx na IReflect selže Změna chování
Jednosouborové aplikace už nehledají nativní knihovny ve spustitelném adresáři. Změna chování
Určení DllImportSearchPath.AssemblyDirectory prohledá pouze adresář sestavení. Změna chování

Sítě

Title Typ změny
Podpora HTTP/3 je ve výchozím nastavení zakázaná s funkcí PublishTrimmed Nekompatibilní zdroj
Streamování odpovědí HTTP povolených ve výchozím nastavení v klientech HTTP prohlížeče Změna chování
Uri odebrané limity délky Změna chování

Zamyšlení

Title Typ změny Představená verze
Další omezené poznámky pro InvokeMember/FindMembers/DeclaredMembers Chování / zdroj nekompatibilní

SDK a MSBuild

Title Typ změny
Rozhraní příkazového řádku .NET ve výchozím nastavení< /c1> ve scénářích uživatelů Změna chování
dotnet Příkazy rozhraní příkazového řádku zapisují data, která nejsou relevantní pro příkazy, na stderr. Změna chování
Balíček nástrojů .NET vytvoří balíčky nástrojů specifické pro RuntimeIdentifier. Změna chování
Výchozí konfigurace úloh z "volných manifestů" do režimu sady úloh Změna chování
Výchozí hodnota pokrytí kódu EnableDynamicNativeInstrumentation je false Změna chování
dnx.ps1 soubor už není součástí sady .NET SDK. Nekompatibilní zdroj
dotnet new sln výchozí nastavení formátu souboru SLNX Změna chování
dotnet package list provádí obnovení. Změna chování
dotnet restore audituje tranzitivní balíčky Změna chování
dotnet tool install --local ve výchozím nastavení vytvoří manifest. Změna chování
dotnet watch Logování do stderr místo stdout Změna chování
project.json není podporován v dotnet restore Nekompatibilní zdroj
Podpora otisku prstu SHA-1 je zastaralá dotnet nuget sign Změna chování
Escape hatch MSBUILDCUSTOMBUILDEVENTWARNING byl odstraněn Změna chování
Zpracování vlastních kulturních prostředků nástroje MSBuild Změna chování
NU1510 je vyvolán pro odstraněné přímé odkazy nástrojem NuGet. Nekompatibilní zdroj
Balíčky NuGet bez prostředků modulu runtime nejsou součástí deps.json Nekompatibilní zdroj
PackageReference bez verze vyvolá chybu Změna chování
PrunePackageReference privatizuje přímé vyřízitelné odkazy Změna chování
Upozornění HTTP povýšená na chyby v dotnet package list a dotnet package search Behaviorální/zdroj nekompatibilní změna
Proměnná prostředí NUGET_ENABLE_ENHANCED_HTTP_RETRY byla odstraněna Změna chování
NuGet zaznamená chybu pro neplatná ID balíčků. Změna chování
ToolCommandName není nastaveno pro balíčky bez nástrojů Nekompatibilní zdroj

Serialization

Title Typ změny
System.Text.Json kontroluje konflikty názvů vlastností. Změna chování
XmlSerializer už ignoruje vlastnosti označené zastaralou atributem ObsoleteAttribute. Změna chování

model Windows Forms

Title Typ změny
Zastaralost rozhraní API Nekompatibilní zdroj
Aplikace odkazující na WPF i WinForms musí zrušit nejednoznačnost typů MenuItem a ContextMenu. Nekompatibilní zdroj
Přejmenování parametru v HtmlElement.InsertAdjacentElement Nekompatibilní zdroj
Zkrácení obrázku zaškrtávacího pole v TreeView Změna chování
StatusStrip ve výchozím nastavení používá system RenderMode. Změna chování
System.Drawing OutOfMemoryException se změnil na ExternalException Změna chování

Windows Presentation Foundation (WPF)

Title Typ změny
Prázdné definice columnDefinitions a RowDefinitions jsou zakázány Nekompatibilní zdroj
Nesprávné použití DynamicResource způsobuje chybové ukončení aplikace Nekompatibilní/behaviorální změna zdroje