Udostępnij za pośrednictwem


Zmiany powodujące niezgodność w .NET 8

Jeśli migrujesz aplikację do platformy .NET 8, zmiany powodujące niezgodność wymienione tutaj mogą mieć wpływ na Ciebie. Zmiany są pogrupowane według obszaru technologii, takiego jak ASP.NET Core lub Windows Forms.

Ten artykuł kategoryzuje każdą zmianę powodującą niezgodność jako niezgodną binarną lub niezgodną źródłową albo jako zmianę behawioralną:

  • Niezgodne dane binarne — w przypadku uruchamiania względem nowego środowiska uruchomieniowego lub składnika istniejące pliki binarne mogą napotkać niezgodną zmianę zachowania, taką jak niepowodzenie ładowania lub wykonywania, a jeśli tak, wymagaj ponownej kompilacji.

  • Niezgodne źródło — w przypadku ponownego skompilowania przy użyciu nowego zestawu SDK lub składnika lub docelowego nowego środowiska uruchomieniowego istniejący kod źródłowy może wymagać pomyślnego skompilowania zmian źródłowych.

  • Zmiana zachowania — istniejący kod i pliki binarne mogą zachowywać się inaczej w czasie wykonywania. Jeśli nowe zachowanie jest niepożądane, należy zaktualizować i ponownie skompilować istniejący kod.

ASP.NET Core

Tytuł Typ zmiany
ConcurrencyLimiterMiddleware jest przestarzałe Niezgodne źródło
Niestandardowe konwertery do serializacji usunięte Zmiana zachowania
ISystemClock jest przestarzały Niezgodne źródło
Minimalne interfejsy API: parametry IFormFile wymagają kontroli fałszerzowania Zmiana zachowania
Oprogramowanie pośredniczące ograniczające szybkość wymaga dodatku AddRateLimiter Zmiana zachowania
Zdarzenia tokenu zabezpieczającego zwracają token JsonWebToken Zmiana zachowania
Ustawienie domyślne TrimMode dla projektów zestawu Web SDK Niezgodne źródło

Kontenery

Tytuł Typ zmiany
Pakiet "ca-certificates" usunięty z obrazów alpine Niezgodność binarna
Obrazy kontenerów Debian uaktualnione do systemu Debian 12 Niezgodna/behawioralna zmiana binarna
Domyślny port ASP.NET Core został zmieniony na 8080 Zmiana zachowania
Pakiet Kerberos usunięty z obrazów Alpine i Debian Niezgodność binarna
Pakiet "libintl" usunięty z obrazów alpejskich Zmiana zachowania
Tagi kontenerów wieloplatformowych to tylko system Linux Zmiana zachowania
Nowy użytkownik "app" na obrazach systemu Linux Zmiana zachowania

Podstawowe biblioteki platformy .NET

Tytuł Typ zmiany
Nazwa operacji działania, gdy ma wartość null Zmiana zachowania
Zachowanie AnonymousPipeServerStream.Dispose Zmiana zachowania
Obsoletions interfejsu API z niestandardowymi identyfikatorami diagnostycznymi Niezgodne źródło
Mapowanie ukośników odwrotnych w ścieżkach plików systemu Unix Zmiana zachowania
Metody Base64.DecodeFromUtf8 ignorują białe znaki Zmiana zachowania
Usunięto obsługę typu wyliczenia opartego na wartości logicznej Zmiana zachowania
Format Complex.ToString został zmieniony na <a; b> Zmiana zachowania
Bieżąca wyliczenie ścieżki katalogu dysku Zmiana zachowania
Funkcja Enumerable.Sum zgłasza nowy wyjątek OverflowException dla niektórych danych wejściowych Zmiana zachowania
FileStream zapisuje, gdy potok jest zamknięty Zmiana zachowania
Identyfikator FindSystemTimeZoneById nie zwraca nowego obiektu Zmiana zachowania
GC. Polecenie GetGeneration może zwrócić wartość Int32.MaxValue Zmiana zachowania
Zachowanie GetFolderPath w systemie Unix Zmiana zachowania
Polecenie GetSystemVersion nie zwraca już elementu ImageRuntimeVersion Zmiana zachowania
ITypeDescriptorContext — adnotacje dopuszczane do wartości null Niezgodne źródło
Starsza wersja Console.ReadKey została usunięta Zmiana zachowania
Konstruktorzy metod generują parametry z wartością HasDefaultValue ustawioną na false Zmiana zachowania
ProcessStartInfo.WindowStyle honorowany, gdy parametr UseShellExecute ma wartość false Zmiana zachowania
RuntimeIdentifier zwraca platformę, dla której utworzono środowisko uruchomieniowe Zmiana zachowania
Type.GetType zgłasza wyjątek dla wszystkich nieprawidłowych typów elementów Zmiana zachowania

Kryptografia

Tytuł Typ zmiany Wprowadzono
Rozmiar tagu uwierzytelniania narzędzia AesGcm w systemie macOS Zmiana zachowania Wersja zapoznawcza 1
RSA. EncryptValue i RSA. DecryptValue przestarzałe Niezgodne źródło Wersja zapoznawcza 1

Wdrożenie

Tytuł Typ zmiany
Host określa zasoby specyficzne dla identyfikatorów RID Niezgodna/behawioralna zmiana binarna
Program .NET Monitor zawiera tylko obrazy bez dystrybucji Zmiana zachowania
Właściwość StripSymbols domyślnie ma wartość true Zmiana zachowania

Entity Framework Core

Istotne zmiany w programie EF Core 8

Rozszerzenia

Tytuł Typ zmiany
AktywatorUtilities.CreateInstance zachowuje się spójnie Zmiana zachowania
ActivatorUtilities.CreateInstance wymaga dostawcy innego niż null Zmiana zachowania
ConfigurationBinder zgłasza niezgodną wartość Zmiana zachowania
Pakiet ConfigurationManager nie odwołuje się już do pliku System.Security.Permissions Niezgodne źródło
Pakiet DirectoryServices nie odwołuje się już do pliku System.Security.Permissions Niezgodne źródło
Puste klucze dodane do słownika przez powiązanie konfiguracji Zmiana zachowania
HostApplicationBuilderSettings.Args szanowany przez narzędzie HostApplicationBuilder Zmiana zachowania
ManagementDateTimeConverter.ToDateTime zwraca czas lokalny Zmiana zachowania
System.Formats.Cbor DateTimeOffset, zmiana formatowania Zmiana zachowania

Globalizacja

Tytuł Typ zmiany
Konwertery dat i godzin honorować argument kultury Zmiana zachowania
Wartość domyślna TwoDigitYearMax to 2049 Zmiana zachowania

Interop

Tytuł Typ zmiany
CreateObjectFlags.Unwraps unwraps unwraps tylko w wystąpieniu docelowym Zmiana zachowania
Niestandardowe marshallers wymagają dodatkowych elementów członkowskich Niezgodne źródło
Interfejs API IDispatchImplAttribute został usunięty Niezgodność binarna
JsFunctionBinding niejawny publiczny konstruktor domyślny został usunięty Niezgodność binarna
Typy SafeHandle muszą mieć publiczny konstruktor Niezgodne źródło

Sieć

Tytuł Typ zmiany
Element SendFile zgłasza wyjątek NotSupportedException dla gniazd bez połączenia Zmiana zachowania
Informacje o użytkowniku w mailto: identyfikatorach URI są porównywane Zmiana zachowania

Odbicie

Tytuł Typ zmiany
IntPtr nie jest już używany dla typów wskaźników funkcji Zmiana zachowania

SDK

Tytuł Typ zmiany
Dane wyjściowe konsoli interfejsu wiersza polecenia używają protokołu UTF-8 Zmiana zachowania/Niezgodność źródła i danych binarnych
Kodowanie konsoli nie UTF-8 po zakończeniu Zmiana zachowania/Niezgodność binarna
Kontenery domyślnie używają tagu "latest" Zmiana zachowania
"dotnet pack" używa konfiguracji wydania Zmiana zachowania/Niezgodność źródła
Polecenie "dotnet publish" używa konfiguracji wydania Zmiana zachowania/Niezgodność źródła
Zduplikowane dane wyjściowe dla parametrów -getItem, -getProperty i -getTargetResult Zmiana zachowania
Niejawna using dla elementu System.Net.Http nie jest już dodawana Zmiana zachowania/Niezgodność źródła
Niestandardowe zdarzenia kompilacji pochodnej programu MSBuild przestarzałe Zmiana zachowania
Program MSBuild szanuje DOTNET_CLI_UI_LANGUAGE Zmiana zachowania
Aplikacje specyficzne dla środowiska uruchomieniowego nie są samodzielne Niezgodne źródło/binarne
--arch opcja nie oznacza samodzielnej Zmiana zachowania
Polecenie "dotnet restore" powoduje wygenerowanie ostrzeżeń o lukach w zabezpieczeniach Zmiana zachowania
Zestaw SDK używa mniejszego grafu RID Zmiana zachowania/Niezgodność źródła
Ustawianie wartości DebugSymbols na wartość false powoduje wyłączenie generowania pliku PDB Zmiana zachowania
Link źródłowy uwzględniony w zestawie SDK platformy .NET Niezgodne źródło
Przycinanie może nie być używane w programie .NET Standard lub .NET Framework Zmiana zachowania
Pakiety nieznajdowane na liście nie są instalowane domyślnie dla narzędzi platformy .NET Zmiana zachowania
Plik .user zaimportowany w kompilacjach zewnętrznych Zmiana zachowania
Wymagania dotyczące wersji zestawu .NET 8 SDK Niezgodne źródło

Serializacja

Tytuł Typ zmiany
BinaryFormatter wyłączony dla większości projektów Zmiana zachowania
Serializacja oparta na odbiciu odbicia projektów opublikowanychTrimmed kończy się niepowodzeniem Zmiana zachowania
Deserializator oparty na odbiciu z niecierpliwością rozwiązuje metadane Zmiana zachowania

Windows Forms

Tytuł Typ zmiany
Zmiany układu zakotwiczenia Zmiana zachowania
Certyfikaty sprawdzane przed załadowaniem obrazów zdalnych w aplikacji PictureBox Zmiana zachowania
Ciąg DateTimePicker.Text jest pusty Zmiana zachowania
DefaultValueAttribute usunięto z niektórych właściwości Zmiana zachowania
WyjątekCollection ctor zgłasza argumentException Zmiana zachowania
Skalowanie formularzy zgodnie z trybem AutoScaleMode Zmiana zachowania
Wartość domyślna ImageList.ColorDepth to Depth32Bit Zmiana zachowania
System.Windows.Extensions nie odwołuje się do pliku System.Drawing.Common Niezgodne źródło
TableLayoutStyleCollection zgłasza wyjątek ArgumentException Zmiana zachowania
Minimalna i maksymalna wielkość formularzy najwyższego poziomu do dpi Zmiana zachowania
WFDEV002 obsoletion jest teraz błędem Niezgodne źródło

Zobacz też