Zásadní změny v .NET 8

Pokud migrujete aplikaci na .NET 8, můžou vás tyto zásadní změny ovlivnit. Změny jsou seskupené podle oblasti technologií, jako je ASP.NET Core nebo model 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í proti novému modulu runtime nebo součásti mohou existující binární soubory narazit na zásadní změnu chování, například selhání načtení nebo spuštění, a pokud ano, vyžadují rekompilace.

  • 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 v době běhu chovat odlišně. Pokud je nové chování nežádoucí, stávající kód bude potřeba aktualizovat a znovu zkompilovat.

ASP.NET Core

Nadpis Typ změny
ConcurrencyLimiterMiddleware je zastaralé Nekompatibilní zdroj
Vlastní převaděče pro serializaci odebrané Změna chování
ISystemClock je zastaralý Nekompatibilní zdroj
Minimální rozhraní API: Parametry IFormFile vyžadují kontroly proti padělání. Změna chování
Middleware pro omezování rychlosti vyžaduje AddRateLimiter. Změna chování
Události tokenu zabezpečení vracejí jsonWebToken Změna chování
TrimMode je výchozí hodnota úplná pro projekty webové sady SDK. Nekompatibilní zdroj

Kontejnery

Nadpis Typ změny
Balíček ca-certificates odebraný z imagí Alpine Binární nekompatibilní
Image kontejnerů Debianu upgradované na Debian 12 Binární nekompatibilní/behaviorální změna
Výchozí port ASP.NET Core se změnil na 8080 Změna chování
Balíček Kerberos odebraný z imagí Alpine a Debian Binární nekompatibilní
Balíček libintl odebraný z imagí Alpine Změna chování
Značky kontejnerů s více platformami jsou pouze pro Linux. Změna chování
Nový uživatel aplikace v imagích Linuxu Změna chování

Knihovny Core .NET

Nadpis Typ změny
Název operace aktivity, když má hodnotu null Změna chování
Chování AnonymousPipeServerStream.Dispose Změna chování
Obsoletions rozhraní API s vlastními diagnostickými ID Nekompatibilní zdroj
Mapování zpětného lomítka v cestách k souborům unix Změna chování
Metody Base64.DecodeFromUtf8 ignorují prázdné znaky Změna chování
Logická podpora typu výčtu odebraná Změna chování
Aktuální cesta k adresáři jednotky – výčet Změna chování
Enumerable.Sum vyvolá novou výjimku OverflowException pro některé vstupy Změna chování
FileStream zapisuje při zavření kanálu Změna chování
FindSystemTimeZoneById nevrací nový objekt. Změna chování
GC. GetGeneration může vrátit Hodnotu Int32.MaxValue Změna chování
Chování GetFolderPath v unixu Změna chování
GetSystemVersion už nevrací ImageRuntimeVersion Změna chování
ITypeDescriptorContext anotace s možnou hodnotou null Nekompatibilní zdroj
Starší verze Console.ReadKey byla odebrána. Změna chování
Tvůrci metod generují parametry s hodnotou HasDefaultValue nastavenou na false Změna chování
ProcessStartInfo.WindowStyle se respektuje, pokud je hodnota UseShellExecute false Změna chování
Modul runtimeIdentifier vrací platformu, pro kterou byl modul runtime vytvořen. Změna chování
Type.GetType vyvolá výjimku pro všechny neplatné typy elementů. Změna chování

Kryptografie

Nadpis Typ změny Představení
Velikost značky ověřování AesGcm v systému macOS Změna chování Preview 1
RSA. EncryptValue a RSA. Dešifrovací hodnota zastaralá Nekompatibilní zdroj Preview 1

Nasazení

Nadpis Typ změny
Hostitel určuje prostředky specifické pro identifikátory RID. Binární nekompatibilní/behaviorální změna
Monitorování .NET zahrnuje pouze neschválné image. Změna chování
StripSymbols výchozí hodnota true Změna chování

Entity Framework Core

Zásadní změny v EF Core 8

Rozšíření

Nadpis Typ změny
ActivatorUtilities.CreateInstance se chová konzistentně Změna chování
ActivatorUtilities.CreateInstance vyžaduje jiného poskytovatele než null. Změna chování
ConfigurationBinder vyvolá neshodnou hodnotu. Změna chování
Balíček ConfigurationManager již odkazuje na System.Security.Permissions Nekompatibilní zdroj
Balíček DirectoryServices již odkazuje na System.Security.Permissions Nekompatibilní zdroj
Prázdné klíče přidané do slovníku pomocí pořadače konfigurace Změna chování
HostApplicationBuilder Nastavení. Args respected by HostApplicationBuilder ctor Změna chování
ManagementDateTimeConverter.ToDateTime vrátí místní čas. Změna chování
Změna formátování System.Formats.Cbor DateTimeOffset Změna chování

Globalizace

Nadpis Typ změny
Převaděče data a času dodržují argument jazykové verze Změna chování
Výchozí hodnota TwoDigitYearMax je 2049 Změna chování

Zprostředkovatel komunikace

Nadpis Typ změny
CreateObjectFlags.Unwrap pouze rozbalení v cílové instanci Změna chování
Vlastní zařazovače vyžadují další členy. Nekompatibilní zdroj
Odebere se rozhraní API IDispatchImplAttribute. Binární nekompatibilní
Implicitní veřejný výchozí konstruktor JSFunctionBinding se odebral Binární nekompatibilní
typy Sejf Handle musí mít veřejný konstruktor. Nekompatibilní zdroj

Sítě

Nadpis Typ změny
SendFile vyvolá výjimku NotSupportedException pro bezpočtové sokety Změna chování

Reflexe

Nadpis Typ změny
IntPtr se už nepoužívá pro typy ukazatelů funkce. Změna chování

Sada SDK

Nadpis Typ změny
Výstup konzoly CLI používá UTF-8 Změna chování / Zdroj a binární nekompatibilní
Kódování konzoly po dokončení není UTF-8 Změna chování / Binární nekompatibilní
Ve výchozím nastavení se kontejnery používají značku latest Změna chování
Dotnet Pack používá konfiguraci vydané verze. Změna chování / Nekompatibilní zdroj
Dotnet publish používá konfiguraci vydané verze. Změna chování / Nekompatibilní zdroj
Duplicitní výstup pro -getItem, -getProperty a -getTargetResult Změna chování
Implicitní using pro System.Net.Http se už nepřidá Změna chování / Nekompatibilní zdroj
Události vlastního odvozeného sestavení NÁSTROJE MSBuild jsou zastaralé Změna chování
MsBuild respektuje DOTNET_CLI_UI_LANGUAGE Změna chování
Samostatné aplikace specifické pro modul runtime Nekompatibilní zdroj/binární soubor
Možnost --arch neznamená, že je obsažena samostatně Změna chování
Příkaz dotnet restore vytváří upozornění ohrožení zabezpečení. Změna chování
Sada SDK používá menší graf identifikátorů RID. Změna chování / Nekompatibilní zdroj
Zdrojový odkaz zahrnutý v sadě .NET SDK Nekompatibilní zdroj
Oříznutí se nedá použít s rozhraním .NET Standard nebo .NET Framework. Změna chování
Neinstalované balíčky nejsou ve výchozím nastavení nainstalované pro nástroje .NET Změna chování
Soubor .user importovaný ve vnějších buildech Změna chování
Požadavky na verzi pro sadu .NET 8 SDK Nekompatibilní zdroj

Serializace

Nadpis Typ změny
BinaryFormatter zakázáno pro většinu projektů Změna chování
Publikované projektyTrimmed selžou serializaci založené na reflexi Změna chování
deserializátor založený na Reflexe řeší metadata dychtivě Změna chování

Windows Forms

Nadpis Typ změny
Změny rozložení ukotvení Změna chování
Kontrola certifikátů před načtením vzdálených obrázků v PictureBoxu Změna chování
DefaultValueAttribute odebrané z některých vlastností Změna chování
ExceptionCollection ctor vyvolá ArgumentException Změna chování
Škálování formulářů podle automatického škálováníMode Změna chování
Výchozí hodnota ImageList.ColorDepth je Depth32Bit Změna chování
System.Windows.Extensions neodkazuje na System.Drawing.Common Nekompatibilní zdroj
TableLayoutStyleCollection vyvolá výjimku ArgumentException Změna chování
Formuláře nejvyšší úrovně se škáluje minimálně a maximální velikost na DPI. Změna chování
WFDEV002 obsoletion je teď chyba Nekompatibilní zdroj

Viz také