Udostępnij przez


Zmiany zrywające zgodność w .NET 10

Jeśli migrujesz aplikację do platformy .NET 10, zmiany powodujące niekompatybilność wymienione tutaj mogą cię dotyczyć. Zmiany są pogrupowane według obszaru technologii, takiego jak ASP.NET Core lub Windows Forms.

Ten artykuł kategoryzuje każdą zmianę jako niekompatybilną binarnie lub niekompatybilną źródłowo, albo jako zmianę behawioralną:

  • Niekompatybilne binaria — w przypadku uruchamiania w nowym środowisku uruchomieniowym lub w stosunku do nowego składnika, istniejące pliki binarne mogą napotkać istotną zmianę w działaniu, taką jak niepowodzenie ładowania lub uruchomienia, i w takim przypadku wymagają ponownej kompilacji.

  • Niekompatybilne źródło — W przypadku ponownego skompilowania przy użyciu nowego zestawu SDK lub składnika albo w celu skierowania na nowe środowisko uruchomieniowe, istniejący kod źródłowy może wymagać wprowadzenia zmian, aby można go było pomyślnie skompilować.

  • 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.

Uwaga / Notatka

Ten artykuł jest w toku. To nie jest pełna lista zmian łamiących zgodność w frameworku .NET 10.

ASP.NET Core

Title Typ zmiany
Przekierowania logowania przy użyciu plików cookie wyłączone dla znanych punktów końcowych API Zmiana zachowania
Wycofanie metody rozszerzenia WithOpenApi Niezgodne źródło
Diagnostyka wyjątków pomijana, gdy funkcja TryHandleAsync zwraca wartość true Zmiana zachowania
IActionContextAccessor i ActionContextAccessor są przestarzałe Niezgodna/behawioralna zmiana źródła
Właściwość IncludeOpenAPIAnalyzers i analizatory MVC API są przestarzałe Niezgodne źródło
IPNetwork i ForwardedHeadersOptions.KnownNetworks są przestarzałe Niezgodne źródło
Pakiet Microsoft.Extensions.ApiDescription.Client jest przestarzały Niezgodne źródło
Razor kompilacja środowiska uruchomieniowego jest przestarzała Niezgodne źródło
WebHostBuilder, IWebHost i WebHost są przestarzałe Niezgodne źródło

Containers

Title Typ zmiany
domyślne obrazy .NET używają systemu Ubuntu Zmiana zachowania

Podstawowe biblioteki platformy .NET

Title Typ zmiany
Zmiana zachowania ActivitySource.CreateActivity i ActivitySource.StartActivity Zmiana zachowania
Ładowania Arm64 SVE bez błędu wymagają maski Niezgodne dane binarne/źródło
BufferedStream.WriteByte nie wykonuje już niejawnego opróżniania Zmiana zachowania
Rozstrzyganie przeciążeń w C# 14 z parametrami span Zmiana zachowania
Spójne zachowanie przesunięcia w ogólnej matematyce Zmiana zachowania
Domyślny propagator kontekstu śledzenia zaktualizowany do standardu W3C Zmiana zachowania
DriveInfo.DriveFormat zwraca typy systemu plików Linux Zmiana zachowania
Adnotacja DynamicallyAccessedMembers usunięta z konstruktora DefaultValueAttribute Niezgodne dane binarne/źródło
Jawny rozmiar struktury niedozwolony dla inlineArray Binarna niezgodność
PlikPatternMatch.Stem został zmieniony na niepusty Niezgodna/behawioralna zmiana źródła
GnuTarEntry i PaxTarEntry nie zawierają już domyślnie atime i ctime Zmiana zachowania
Analizowanie LDAP DirectoryControl jest teraz bardziej precyzyjne. Zmiana zachowania
Ujednolicanie wersji MacCatalyst Zmiana zachowania
Środowisko uruchomieniowe platformy .NET nie udostępnia już domyślnych procedur obsługi sygnałów zakończenia Zmiana zachowania
System.Linq.AsyncEnumerable uwzględnione w podstawowych bibliotekach Niezgodne źródło
Sprawdzanie poprawności argumentu Type.MakeGenericSignatureType Zmiana zachowania

Kryptografia

Title Typ zmiany
CompositeMLDsa zaktualizowano do wersji draft-08 Zmiana zachowania
CoseSigner.Key może mieć wartość null Niezgodna zmiana w zachowaniu i kodzie źródłowym
Nazwy członków MLDsa i SlhDsa "SecretKey" zostały zmienione Niezgodne źródło
Kryptograficzne elementy pierwotne openSSL nie są obsługiwane w systemie macOS Zmiana zachowania
Program OpenSSL 1.1.1 lub nowszy jest wymagany w systemie Unix Zmiana zachowania
sprawdzanie poprawności X500DistinguishedName jest bardziej rygorystyczne Zmiana zachowania
parametry klucza X509Certificate i PublicKey mogą mieć wartość null Niezgodna zmiana w zachowaniu i kodzie źródłowym
zmieniono nazwę zmiennej środowiskowej na DOTNET_OPENSSL_VERSION_OVERRIDE Zmiana zachowania

Entity Framework Core

Istotne zmiany w programie EF Core 10

Extensions

Title Typ zmiany
BackgroundService uruchamia cały proces ExecuteAsync jako Task Zmiana zachowania
Napraw problemy w GetKeyedService() i GetKeyedServices() z AnyKey Zmiana zachowania
Wartości null zachowane w konfiguracji Zmiana zachowania
Komunikat nie jest już zduplikowany w danych wyjściowych dziennika konsoli Zmiana zachowania
ProviderAliasAttribute przeniesiono do zestawu Microsoft.Extensions.Logging.Abstractions Niezgodne źródło
Usunięto adnotację DynamicallyAccessedMembers z kodu niebezpiecznego dla przycinania Microsoft.Extensions.Configuration Binarna niezgodność

Globalization

Title Typ zmiany
zmieniono nazwę zmiennej środowiskowej na DOTNET_ICU_VERSION_OVERRIDE Zmiana zachowania

Narzędzie do instalowania

Title Typ zmiany
dotnet.acquire API dla programu VS Code nie zawsze pobiera najnowszą wersję Zmiana zachowania

Interoperacyjność

Title Typ zmiany
Rzutowanie obiektu COM IDispatchEx na IReflect nie powiodło się Zmiana zachowania
Aplikacje z jednym plikiem nie szukają już bibliotek natywnych w katalogu wykonywalnym Zmiana zachowania
Określanie biblioteki DllImportSearchPath.AssemblyDirectory wyszukuje tylko katalog zestawów Zmiana zachowania

Sieć

Title Typ zmiany
Obsługa protokołu HTTP/3 jest domyślnie wyłączona z funkcją PublishTrimmed Niezgodne źródło
Przesyłanie strumieniowe odpowiedzi HTTP domyślnie włączone w klientach HTTP przeglądarki Zmiana zachowania
Uri usunięto limity długości Zmiana zachowania

Reflection

Title Typ zmiany Wprowadzona wersja
Bardziej ograniczone adnotacje dotyczące elementu InvokeMember/FindMembers/DeclaredMembers Niezgodność behawioralna/źródłowa

Zestaw SDK i program MSBuild

Title Typ zmiany
Domyślne ustawienia interfejsu wiersza polecenia --interactive platformy true .NET w scenariuszach użytkownika Zmiana zachowania
dotnet Polecenia interfejsu wiersza polecenia logują dane niezwiązane z poleceniem do stderr Zmiana zachowania
Tworzenie pakietów narzędzi platformy .NET powoduje utworzenie pakietów narzędzi specyficznych dla środowiska RuntimeIdentifier Zmiana zachowania
Domyślna konfiguracja obciążenia z "luźnych manifestów" do trybu "zestawów obciążeń" Zmiana zachowania
Pokrycie kodu EnableDynamicNativeInstrumentation domyślnie ma wartość false Zmiana zachowania
plikdnx.ps1 nie jest już uwzględniony w zestawie SDK platformy .NET Niezgodne źródło
dotnet new sln domyślnie format pliku SLNX Zmiana zachowania
dotnet package list wykonuje przywracanie Zmiana zachowania
dotnet restore audytuje pakiety przechodnie Zmiana zachowania
dotnet tool install --local domyślnie tworzy manifest Zmiana zachowania
dotnet watch logi na stderr zamiast stdout Zmiana zachowania
project.json nie jest obsługiwane w dotnet restore Niezgodne źródło
Obsługa odcisków palców SHA-1 jest przestarzała w dotnet nuget sign Zmiana zachowania
MSBUILDCUSTOMBUILDEVENTWARNING mechanizm awaryjny usunięty Zmiana zachowania
Obsługa zasobów zwyczajowej kultury programu MSBuild Zmiana zachowania
Nu1510 jest wywoływany w przypadku odwołań bezpośrednich przycinanych przez nuGet Niezgodne źródło
Pakiety NuGet bez zasobów środowiska uruchomieniowego nie są uwzględniane w deps.json Niezgodne źródło
Funkcja PackageReference bez wersji zgłasza błąd Zmiana zachowania
PrunePackageReference prywatyzuje bezpośrednie odwołania do oczyszczania Zmiana zachowania
Ostrzeżenia HTTP promowane do błędów w dotnet package list i dotnet package search Niezgodna zmiana w zachowaniu i kodzie źródłowym
Zmienna środowiskowa NUGET_ENABLE_ENHANCED_HTTP_RETRY została usunięta Zmiana zachowania
Program NuGet rejestruje błąd nieprawidłowych identyfikatorów pakietów Zmiana zachowania
ToolCommandName nie ustawiono dla pakietów innych niż narzędzia Niezgodne źródło

Serializacja

Title Typ zmiany
System.Text.Json sprawdza konflikty nazw właściwości Zmiana zachowania
XmlSerializer nie ignoruje już właściwości oznaczonych atrybutem Obsolete Zmiana zachowania

Windows Forms

Title Typ zmiany
Przestarzałości API Niezgodne źródło
Aplikacje odwołujące się zarówno do WPF, jak i WinForms muszą uściślać typy MenuItem i ContextMenu Niezgodne źródło
Zmieniono nazwę parametru w HtmlElement.InsertAdjacentElement Niezgodne źródło
obcięcie obrazu pola wyboru TreeView Zmiana zachowania
StatusStrip domyślnie używa modułu RenderMode systemu Zmiana zachowania
System.Drawing OutOfMemoryException został zmieniony na ExternalException Zmiana zachowania

Windows Presentation Foundation (WPF)

Title Typ zmiany
Puste definicje kolumn i definicje wierszy są niedozwolone Niezgodne źródło
Nieprawidłowe użycie usługi DynamicResource powoduje awarię aplikacji Niezgodna/behawioralna zmiana źródła