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

Jeśli migrujesz aplikację do platformy .NET 6, 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ł 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
ActionResult<T> ustawia statusCode na 200 ✔️
Metoda AddDataAnnotationsValidation jest przestarzała ✔️
Zestawy usunięte z platformy udostępnionej Microsoft.AspNetCore.App ✔️
Blazor: Nazwa parametru zmieniona w metodzie RequestImageFileAsync ✔️
Blazor: Właściwość WebEventDescriptor.EventArgsType została zastąpiona
Blazor: międzyoperajności tablicy bajtów ✔️
Changed MessagePack library in @microsoft/signalr-protocol-msgpack ✔️
Właściwość ClientCertificate nie wyzwala ponownego negocjowania dla protokołu HttpSys ✔️
Metadane endpointName nie są ustawiane automatycznie ✔️
Tożsamość: zmieniono domyślną wersję interfejsu użytkownika bootstrap
Kestrel: Zmieniono atrybuty komunikatu dziennika ✔️
Microsoft.AspNetCore.Http.Features — podział ✔️
Oprogramowanie pośredniczące: Oprogramowanie pośredniczące przekierowania HTTPS zgłasza wyjątek dla niejednoznacznych portów HTTPS ✔️
Oprogramowanie pośredniczące: Nowe użycie przeciążenia ✔️
Minimalna zmiana nazwy interfejsu API w wersji RC 1
Minimalna zmiana nazwy interfejsu API w wersji RC 2
Funkcja MVC nie buforuje typów IAsyncEnumerable w przypadku korzystania z pliku System.Text.Json ✔️
Adnotacje typu odwołania dopuszczanego do wartości null uległy zmianie ✔️
Przestarzałe i usunięte interfejsy API ✔️
Zachowaj wartośćCompilationContext nieskonfigurowane domyślnie ✔️
Razor: Kompilator nie generuje już zestawu Views ✔️
Razor: Zmiany identyfikatora rejestrowania ✔️
Razor: RazorInterfejsy API aparatu oznaczone jako przestarzałe ✔️
SignalR: klient Java zaktualizowany do wersji RxJava3 ✔️
Metody TryParse i BindAsync są weryfikowane

Kontenery

Tytuł Zgodność binarna Zgodne ze źródłem
Domyślne formatowanie rejestratora konsoli w obrazach kontenerów ✔️

Aby uzyskać informacje na temat innych zmian powodujących niezgodność dla kontenerów na platformie .NET 6, zobacz Informacje o wersji kontenera platformy .NET 6.

Podstawowe biblioteki platformy .NET

Tytuł Zgodność binarna Zgodne ze źródłem
Obsoletions interfejsu API z nie domyślnymi identyfikatorami diagnostycznymi ✔️
Zmiany adnotacji typu odwołania dopuszczanego do wartości null ✔️
Warunkowa ocena ciągu w metodach debugowania ✔️
Zachowanie Environment.ProcessorCount w systemie Windows ✔️
Zachowanie wywołania zwrotnego źródła zdarzeń ✔️ ✔️
Funkcja File.Replace w systemie Unix zgłasza wyjątki zgodne z systemem Windows ✔️
FileStream blokuje pliki z udostępnioną blokadą w systemie Unix ✔️
PlikStream nie synchronizuje już przesunięcia pliku z systemem operacyjnym
Aktualizacje FileStream.Position po zakończeniu operacji ReadAsync lub WriteAsync
Nowe identyfikatory diagnostyczne przestarzałych interfejsów API ✔️
Nowe przeciążenia metody System.Linq.Queryable ✔️
Starsze wersje platformy usunięte z pakietu ✔️
Zmieniono nazwy parametrów ✔️
Nazwy parametrów w typach pochodnych strumienia ✔️
Odczyty częściowe i zerowe w deflatestream, GZipStream i CryptoStream ✔️
Ustawianie znacznika czasu w pliku tylko do odczytu w systemie Windows ✔️
Standardowa precyzja analizowania formatu liczbowego ✔️
Statyczne abstrakcyjne elementy członkowskie w interfejsach ✔️
Przeciążenia StringBuilder.Append i kolejność oceny ✔️
Interfejsy API o silnej nazwie zgłaszają wyjątek PlatformNotSupportedException ✔️
System.Drawing.Common obsługiwany tylko w systemie Windows
Element System.Security.SecurityContext jest oznaczony jako przestarzały ✔️
Task.FromResult może zwrócić pojedynczyton ✔️
Nieobsługiwane wyjątki z usługi BackgroundService ✔️

Kryptografia

Tytuł Zgodność binarna Zgodne ze źródłem
Metody CreateEncryptor zgłaszają wyjątek dla nieprawidłowego rozmiaru opinii ✔️

Wdrożenie

Tytuł Zgodność binarna Zgodne ze źródłem
Ścieżka hosta x86 w 64-bitowym systemie Windows ✔️ ✔️

Entity Framework Core

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

Rozszerzenia

Tytuł Zgodność binarna Zgodne ze źródłem
Funkcja AddProvider sprawdza, czy dostawca nie ma wartości null ✔️
FileConfigurationProvider.Load zgłasza wyjątek InvalidDataException ✔️
Powtarzające się elementy XML obejmują indeks ✔️
Usuwanie usuniętego dostawcy usług zgłasza wyjątek ✔️

Globalizacja

Tytuł Zgodność binarna Zgodne ze źródłem
Tworzenie kultury i mapowanie wielkości liter w trybie niezmiennym globalizacji

Interop

Tytuł Zgodność binarna Zgodne ze źródłem
Statyczne abstrakcyjne elementy członkowskie w interfejsach ✔️

Kompilator JIT

Tytuł Zgodność binarna Zgodne ze źródłem
Argumenty wywołania coerce zgodnie z ECMA-335 ✔️ ✔️

Sieć

Tytuł Zgodność binarna Zgodne ze źródłem
Port usunięty z nazwy SPN dla protokołu Kerberos i negocjowania ✔️
WebRequest, WebClient i ServicePoint są przestarzałe ✔️

SDK

Tytuł Zgodność binarna Zgodne ze źródłem
-p opcja dla dotnet run jest przestarzała ✔️
Kod języka C# w szablonach nieobsługiwany przez wcześniejsze wersje ✔️ ✔️
Pliki EditorConfig niejawnie dołączone ✔️
Generowanie hosta aplikacji dla systemu macOS ✔️
Generowanie błędu dla zduplikowanych plików w danych wyjściowych publikowania ✔️
Właściwości GetTargetFrameworkProperties i GetNearestTargetFramework zostały usunięte z protokołu ProjectReference ✔️
Lokalizacja instalacji dla architektury x64 emulowanej na arm64 ✔️
Program MSBuild nie obsługuje już wywoływania metody GetType()
Nie można zainstalować platformy .NET w lokalizacji niestandardowej ✔️ ✔️
Typ danych wyjściowych nie jest automatycznie ustawiony na WinExe ✔️
Publikowanie elementu ReadyToRun za pomocą polecenia --no-restore wymaga zmian ✔️
nie wygenerowano pliku runtimeconfig.dev.json ✔️
Ostrzeżenie RuntimeIdentifier, jeśli self-contained jest nieokreślony ✔️
Manifesty narzędzi w folderze głównym ✔️ ✔️
Wymagania dotyczące wersji zestawu .NET 6 SDK ✔️ ✔️
Plik wersji zawiera wersję kompilacji ✔️ ✔️
Zapisywanie zestawów odwołań do klasy IntermediateOutputPath ✔️

Serializacja

Tytuł Zgodność binarna Zgodne ze źródłem
DataContractSerializer zachowuje znak podczas deserializacji -0 ✔️
Domyślny format serializacji timeSpan ✔️
Serializacja IAsyncEnumerable ✔️
Refaktoryzacja interfejsu API JSON generacji źródła ✔️
JsonNumberHandlingAttribute we właściwościach kolekcji ✔️
Nowe przeciążenia generatora źródła JsonSerializer ✔️

Windows Forms

Tytuł Zgodność binarna Zgodne ze źródłem
Szablony języka C# używają uruchamiania aplikacji ✔️
Wybrane właściwości TableLayout Ustawienia zgłaszają wyjątek InvalidEnumArgumentException ✔️
Interfejsy API związane z usługą DataGridView zgłaszają teraz wyjątek InvalidOperationException ✔️
Metody ListViewGroupCollection zgłaszają nowy wyjątek InvalidOperationException ✔️
NotifyIcon.Text maksymalna długość tekstu wzrosła ✔️
Funkcja ScaleControl wywoływana tylko w razie potrzeby ✔️
Niektóre interfejsy API zgłaszają wyjątek ArgumentNullException ✔️
TreeNodeCollection.Item zgłasza wyjątek, jeśli węzeł jest przypisany gdzie indziej ✔️

XML i XSLT

Tytuł Zgodność binarna Zgodne ze źródłem
Zachowanie elementu XNodeReader.GetAttribute dla nieprawidłowego indeksu ✔️

Zobacz też