Zmiany powodujące niezgodność na platformie .NET 5

Jeśli migrujesz aplikację do platformy .NET 5, 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 kryptografia.

Ten artykuł wskazuje, czy każda zmiana powodująca niezgodność jest zgodna binarna, czy zgodna ze źródłem:

  • Zgodność binarna — istniejące pliki binarne zostaną załadowane i wykonane pomyślnie bez ponownej kompilacji, a zachowanie czasu wykonywania nie ulegnie zmianie.
  • Zgodne ze źródłem — kod źródłowy zostanie skompilowany pomyślnie bez zmian podczas określania wartości docelowej dla nowego środowiska uruchomieniowego lub przy użyciu nowego zestawu SDK lub składnika.

ASP.NET Core

Tytuł Zgodność binarna Zgodne ze źródłem
ASP.NET Aplikacje Core deserializować cytowane liczby ✔️
Przestarzałe interfejsy API AzureAD.UI i AzureADB2C.UI ✔️
Metody serializacji BinaryFormatter są przestarzałe ✔️
Zasób w routingu punktu końcowego to HttpContext ✔️
Usunięte pakiety integracji platformy Azure z prefiksem Microsoft ✔️
Blazor: logika pierwszeństwa trasy została zmieniona w aplikacjach platformy Blazor ✔️
Blazor: zaktualizowana obsługa przeglądarki ✔️ ✔️
Blazor: nieistotne białe znaki przycięte przez kompilator ✔️
Blazor: typy JSObjectReference i JSInProcessObjectReference są wewnętrzne ✔️
Blazor: zmieniono platformę docelową pakietów NuGet ✔️
Blazor: funkcja ProtectedBrowserStorage przeniesiona do struktury udostępnionej ✔️
Blazor: Pola publiczne renderTreeFrame są teraz właściwościami ✔️
Blazor: zaktualizowana logika sprawdzania poprawności statycznych zasobów internetowych ✔️
Interfejsy API kryptografii nie są obsługiwane w przeglądarce ✔️
Rozszerzenia: zmiany odwołań do pakietów ✔️
Typy Kestrel i IIS BadHttpRequestException są przestarzałe ✔️
Wystąpienia httpClient utworzone przez kody stanu liczby całkowitej dziennika IHttpClientFactory ✔️
HttpSys: renegocjacja certyfikatu klienta jest domyślnie wyłączona ✔️
IIS: Ciągi zapytań oprogramowania pośredniczącego UrlRewrite są zachowywane ✔️
Kestrel: Zmiany konfiguracji wykryte domyślnie ✔️
Kestrel: Zmieniono domyślne obsługiwane wersje protokołu TLS ✔️
Kestrel: protokół HTTP/2 wyłączony za pośrednictwem protokołu TLS w niezgodnych wersjach systemu Windows ✔️ ✔️
Kestrel: Transport Libuv oznaczony jako przestarzały ✔️
Przestarzałe właściwości w konsoliLoggerOptions ✔️
Klasa ResourceManagerWithCultureStringLocalizer i usunięta składowa interfejsu WithCulture ✔️
Usunięte interfejsy API pubternal ✔️
Przestarzały konstruktor usunięty w narzędziu pośredniczącym lokalizacji żądania ✔️
Oprogramowanie pośredniczące: strona błędu bazy danych oznaczona jako przestarzała ✔️
Oprogramowanie pośredniczące programu obsługi wyjątków zgłasza oryginalny wyjątek ✔️ ✔️
ObjectModelValidator wywołuje nowe przeciążenie weryfikacji ✔️
Kodowanie nazwy pliku cookie zostało usunięte ✔️
Zaktualizowano wersje pakietów NuGet IdentityModel ✔️
SignalR: zmieniono typ opcji protokołu centrum MessagePack ✔️
SignalR: Przeniesiono protokół centrum MessagePack ✔️
Metody UseSignalR i Use Połączenie ions usunięte ✔️
Typ zawartości CSV został zmieniony na zgodny ze standardami ✔️

Analiza kodu

Tytuł Zgodność binarna Zgodne ze źródłem
Ostrzeżenie CA1416 ✔️
Ostrzeżenie CA1417 ✔️
Ostrzeżenie CA1831 ✔️
Ostrzeżenie CA2013 ✔️
Ostrzeżenie CA2014 ✔️
Ostrzeżenie CA2015 ✔️
Ostrzeżenie CA2200 ✔️
Ostrzeżenie CA2247 ✔️

Podstawowe biblioteki platformy .NET

Tytuł Zgodność binarna Zgodne ze źródłem
Zmiany interfejsu API związane z zestawem na potrzeby publikowania w jednym pliku ✔️
Metody serializacji BinaryFormatter są przestarzałe ✔️
Interfejsy API zabezpieczeń dostępu do kodu są przestarzałe ✔️
Metoda CreateCounterSetInstance zgłasza wyjątek InvalidOperationException ✔️
Domyślny format ActivityIdFormat to W3C ✔️
Funkcja Environment.OSVersion zwraca poprawną wersję ✔️
Wartość frameworkDescription to .NET, a nie .NET Core ✔️
Interfejsy API GAC są przestarzałe ✔️
Wewnętrzne testy sprzętu IsSupported ✔️
IntPtr i UIntPtr implementują tabelę IFormattable ✔️
Funkcja LastIndexOf obsługuje puste ciągi wyszukiwania ✔️
Ścieżki identyfikatora URI z znakami innym niż ASCII w systemie Unix ✔️
Obsoletions interfejsu API z nie domyślnymi identyfikatorami diagnostycznymi ✔️
Przestarzałe właściwości w konsoliLoggerOptions ✔️
Złożoność LINQ OrderBy.First ✔️
Zmieniono lub usunięto nazwy atrybutów OSPlatform ✔️
Pakiet Microsoft.DotNet.PlatformAbstractions został usunięty ✔️
Atrybut PrincipalPermissionAttribute jest przestarzały ✔️
Zmiana nazwy parametru z wersji zapoznawczych ✔️
Zmiany nazwy parametrów w zestawach odwołań ✔️
Interfejsy API komunikacji zdalniej są przestarzałe ✔️
Kolejność listy Activity.Tags jest odwrócona ✔️
Metody porównania SSE i SSE2 obsługują metodę nan ✔️
Funkcja Thread.Abort jest przestarzała ✔️
Rozpoznawanie identyfikatorów URI ścieżek UNC w systemie Unix ✔️
Ścieżki kodu UTF-7 są przestarzałe ✔️
Zmiana zachowania dla wektorów Vector2.Lerp i Vector4.Lerp ✔️
Wektor<T> zgłasza wyjątek NotSupportedException ✔️

Kryptografia

Tytuł Zgodność binarna Zgodne ze źródłem
Interfejsy API kryptografii nie są obsługiwane w przeglądarce ✔️
Cryptography.Oid jest tylko do inicjowania ✔️
Domyślne zestawy szyfrowania TLS w systemie Linux ✔️
Przeciążenia funkcji Create() na abstrakcjach kryptograficznych są przestarzałe ✔️
Zmieniono domyślną wartość FeedbackSize ✔️

Entity Framework Core

Zmiany powodujące niezgodność w programie EF Core 5.0

Globalizacja

Tytuł Zgodność binarna Zgodne ze źródłem
Korzystanie z bibliotek ICU w systemie Windows ✔️
StringInfo i TextElementEnumerator są zgodne ze standardem UAX29 ✔️
Zmieniono kategorię Unicode dla znaków łacińskich-1 ✔️
Zmieniono wartości TextInfo.ListSeparator ✔️

Interop

Tytuł Zgodność binarna Zgodne ze źródłem
Obsługa winRT została usunięta ✔️
Rzutowanie wersji RCW na interfaceIsIInspectable zgłasza wyjątek ✔️
Brak sondowania sufiksu A/W na platformach innych niż Windows ✔️

Sieć

Tytuł Zgodność binarna Zgodne ze źródłem
Obsługa ścieżek cookie jest zgodna z specyfikacją RFC 6265 ✔️
Program LocalEndPoint jest aktualizowany po wywołaniu metody SendToAsync ✔️
MulticastOption.Group nie akceptuje wartości null ✔️
Strumienie zezwalać na kolejne operacje Begin ✔️
WinHttpHandler usunięto ze środowiska uruchomieniowego platformy .NET ✔️

SDK

Tytuł Zgodność binarna Zgodne ze źródłem
Pliki Directory.Packages.props importowane domyślnie ✔️
Błąd wygenerowany, gdy plik wykonywalny odwołuje się do niezgodnego pliku wykonywalnego ✔️
Element FrameworkReference zastąpiony elementem WindowsSdkPackageVersion dla zestawu Windows SDK ✔️
nie zdefiniowano symbolu preprocesora NETCOREAPP3_1 ✔️
OutputType ustawiono wartość WinExe ✔️
Zmiana zachowania PublishDepsFilePath ✔️
Zmiana elementu TargetFramework z netcoreapp na net ✔️
Aplikacje WinForms i WPF używają zestawu Microsoft.NET.Sdk ✔️

Zabezpieczenia

Tytuł Zgodność binarna Zgodne ze źródłem
Interfejsy API zabezpieczeń dostępu do kodu są przestarzałe ✔️
Atrybut PrincipalPermissionAttribute jest przestarzały ✔️
Ścieżki kodu UTF-7 są przestarzałe ✔️

Serializacja

Tytuł Zgodność binarna Zgodne ze źródłem
BinaryFormatter.Deserialize — ponowne zawijanie wyjątków ✔️
Plik JsonSerializer.Deserialize wymaga ciągu jednoznakowego ✔️
ASP.NET Aplikacje Core deserializować cytowane liczby ✔️
JsonSerializer.Serialize zgłasza wyjątek ArgumentNullException ✔️
Konstruktory niepubliczne, bez parametrów nie są używane do deserializacji ✔️
Opcje są honorowane podczas serializacji par klucz-wartość ✔️

Windows Forms

Tytuł Zgodność binarna Zgodne ze źródłem
Kod macierzysty nie może uzyskać dostępu do obiektów formularzy systemu Windows ✔️
OutputType ustawiono wartość WinExe ✔️
Element DataGridView nie resetuje czcionek niestandardowych ✔️
Metody zgłaszają wyjątek ArgumentException ✔️
Metody zgłaszają wyjątek ArgumentNullException ✔️
Właściwości zgłaszają wyjątek ArgumentOutOfRangeException ✔️
TextFormatFlags.ModifyString jest przestarzały ✔️
Interfejsy API elementu DataGridView zgłaszają wyjątek InvalidOperationException ✔️
Aplikacje WinForms używają zestawu Microsoft.NET.Sdk ✔️
Usunięto kontrolki paska stanu ✔️

WPF

Tytuł Zgodność binarna Zgodne ze źródłem
OutputType ustawiono wartość WinExe ✔️
Aplikacje WPF używają zestawu Microsoft.NET.Sdk ✔️

Zobacz też