Dela via


Icke-bakåtkompatibla ändringar i .NET 5

Om du migrerar en app till .NET 5 kan de icke-bakåtkompatibla ändringarna som anges här påverka dig. Ändringar grupperas efter teknikområde, till exempel ASP.NET Core eller kryptografi.

Den här artikeln anger om varje icke-bakåtkompatibel ändring är binärkompatibel eller källkompatibel:

  • Binärkompatibel – Befintliga binärfiler läses in och körs utan omkompilering och körningsbeteendet ändras inte.
  • Källkompatibel – Källkoden kompileras utan ändringar när den nya körningen riktas eller den nya SDK:n eller komponenten används.

ASP.NET Core

Title Binärkompatibel Källkompatibel
ASP.NET Core-appar deserialisera citerade nummer ✔️
API:er för AzureAD.UI och AzureADB2C.UI är föråldrade ✔️
BinaryFormatter-serialiseringsmetoder är föråldrade ✔️
Resurs i slutpunktsroutning är HttpContext ✔️
Microsoft-prefix för Azure-integreringspaket har tagits bort ✔️
Blazor: Routningspriorlogik har ändrats i Blazor-appar ✔️
Blazor: Uppdaterat webbläsarstöd ✔️ ✔️
Blazor: Obetydligt blanksteg trimmat av kompilatorn ✔️
Blazor: JSObjectReference- och JSInProcessObjectReference-typer är interna ✔️
Blazor: Målramverket för NuGet-paket har ändrats ✔️
Blazor: Funktionen ProtectedBrowserStorage har flyttats till delat ramverk ✔️
Blazor: RenderTreeFrame readonly offentliga fält är nu egenskaper ✔️
Blazor: Uppdaterad valideringslogik för statiska webbtillgångar ✔️
Kryptografi-API:er stöds inte i webbläsaren ✔️
Tillägg: Paketreferensändringar ✔️
Kestrel- och IIS BadHttpRequestException-typerna är föråldrade ✔️
HttpClient-instanser som skapats av IHttpClientFactory-logg heltalsstatuskoder ✔️
HttpSys: Omförhandling av klientcertifikat har inaktiverats som standard ✔️
IIS: UrlRewrite-frågesträngar för mellanprogram bevaras ✔️
Kestrel: Konfigurationsändringar identifieras som standard ✔️
Kestrel: Standardversioner av TLS-protokoll som stöds har ändrats ✔️
Kestrel: HTTP/2 har inaktiverats via TLS i inkompatibla Windows-versioner ✔️ ✔️
Kestrel: Libuv-transport markerad som föråldrad ✔️
Föråldrade egenskaper för ConsoleLoggerOptions ✔️
ResourceManagerWithCultureStringLocalizer-klassen och WithCulture-gränssnittsmedlemmen har tagits bort ✔️
Pubternal-API:er har tagits bort ✔️
Föråldrad konstruktor har tagits bort i mellanprogram för lokalisering av begäran ✔️
Mellanprogram: Databasfelsidan markerad som föråldrad ✔️
Undantagshanterarens mellanprogram genererar ursprungligt undantag ✔️ ✔️
ObjectModelValidator anropar en ny överlagring av Validate ✔️
Cookienamnkodning har tagits bort ✔️
NuGet-paketversionerna för IdentityModel har uppdaterats ✔️
SignalR: Alternativtypen MessagePack Hub Protocol har ändrats ✔️
SignalR: MessagePack Hub Protocol har flyttats ✔️
UseSignalR- och Use Anslut ions-metoder har tagits bort ✔️
CSV-innehållstypen har ändrats till standardkompatibel ✔️

Kodanalys

Title Binärkompatibel Källkompatibel
CA1416-varning ✔️
CA1417-varning ✔️
CA1831-varning ✔️
CA2013-varning ✔️
CA2014-varning ✔️
CA2015-varning ✔️
CA2200-varning ✔️
CA2247-varning ✔️

Core .NET-bibliotek

Title Binärkompatibel Källkompatibel
Sammansättningsrelaterade API-ändringar för publicering med en fil ✔️
BinaryFormatter-serialiseringsmetoder är föråldrade ✔️
Api:er för kodåtkomstsäkerhet är föråldrade ✔️
CreateCounterSetInstance genererar InvalidOperationException ✔️
Standard ActivityIdFormat är W3C ✔️
Environment.OSVersion returnerar rätt version ✔️
FrameworkDescriptions värde är .NET inte .NET Core ✔️
GAC-API:er är föråldrade ✔️
Maskinvaruinbyggda IsSupported-kontroller ✔️
IntPtr och UIntPtr implementerar IFormattable ✔️
LastIndexOf hanterar tomma söksträngar ✔️
URI-sökvägar med icke-ASCII-tecken på Unix ✔️
API-obsoletioner med diagnostik-ID:n som inte är standard ✔️
Föråldrade egenskaper för ConsoleLoggerOptions ✔️
Komplexiteten i LINQ OrderBy.First ✔️
OSPlatform-attribut har bytt namn eller tagits bort ✔️
Microsoft.DotNet.PlatformAbstractions-paketet har tagits bort ✔️
PrincipalPermissionAttribute är föråldrat ✔️
Parameternamn ändras från förhandsversioner ✔️
Parameternamnändringar i referenssammansättningar ✔️
Api:er för fjärrkommunikation är föråldrade ✔️
Ordningen på Activity.Tags-listan är omvänd ✔️
SSE- och SSE2-jämförelsemetoder hanterar NaN ✔️
Thread.Abort är föråldrat ✔️
Uri-igenkänning av UNC-sökvägar i Unix ✔️
UTF-7-kodsökvägar är föråldrade ✔️
Beteendeförändring för Vector2.Lerp och Vector4.Lerp ✔️
Vector<T> genererar NotSupportedException ✔️

Kryptografi

Title Binärkompatibel Källkompatibel
Kryptografi-API:er stöds inte i webbläsaren ✔️
Cryptography.Oid är endast init ✔️
Standard-TLS-chiffersviter i Linux ✔️
Skapa() överlagringar på kryptografiska abstraktioner är föråldrade ✔️
Standardvärdet FeedbackSize har ändrats ✔️

Entity Framework Core

Icke-bakåtkompatibla ändringar i EF Core 5.0

Globalisering

Title Binärkompatibel Källkompatibel
Använda ICU-bibliotek i Windows ✔️
StringInfo och TextElementEnumerator är UAX29-kompatibla ✔️
Unicode-kategorin har ändrats för latinska-1 tecken ✔️
TextInfo.ListSeparator-värden har ändrats ✔️

Interop

Title Binärkompatibel Källkompatibel
Stöd för WinRT tas bort ✔️
Gjutning av RCW till InterfaceIsIInspectable genererar undantag ✔️
Ingen A/W-suffixsökning på plattformar som inte är Windows-plattformar ✔️

Nätverk

Title Binärkompatibel Källkompatibel
Hantering av cookiesökvägar överensstämmer med RFC 6265 ✔️
LocalEndPoint uppdateras när SendToAsync anropas ✔️
MulticastOption.Group accepterar inte null ✔️
Flöden tillåta efterföljande startåtgärder ✔️
WinHttpHandler har tagits bort från .NET-körning ✔️

SDK

Title Binärkompatibel Källkompatibel
Directory.Packages.props-filer som importeras som standard ✔️
Fel som genereras när körbara projekt refererar till felmatchade körbara filer ✔️
FrameworkReference ersätts med WindowsSdkPackageVersion för Windows SDK ✔️
NETCOREAPP3_1 förprocessorsymbolen har inte definierats ✔️
OutputType inställt på WinExe ✔️
Beteendeändring i PublishDepsFilePath ✔️
TargetFramework ändras från netcoreapp till net ✔️
WinForms- och WPF-appar använder Microsoft.NET.Sdk ✔️

Säkerhet

Title Binärkompatibel Källkompatibel
Api:er för kodåtkomstsäkerhet är föråldrade ✔️
PrincipalPermissionAttribute är föråldrat ✔️
UTF-7-kodsökvägar är föråldrade ✔️

Serialization

Title Binärkompatibel Källkompatibel
BinaryFormatter.Deserialize omskrivningsfel ✔️
JsonSerializer.Deserialize kräver sträng med en tecken ✔️
ASP.NET Core-appar deserialisera citerade nummer ✔️
JsonSerializer.Serialize genererar ArgumentNullException ✔️
Icke-offentliga, parameterlösa konstruktorer som inte används för deserialisering ✔️
Alternativ uppfylls när nyckel/värde-par serialiseras ✔️

Windows Forms

Title Binärkompatibel Källkompatibel
Inbyggd kod kan inte komma åt Windows Forms-objekt ✔️
OutputType inställt på WinExe ✔️
DataGridView återställer inte anpassade teckensnitt ✔️
Metoder genererar ArgumentException ✔️
Metoder genererar ArgumentNullException ✔️
Egenskaper genererar ArgumentOutOfRangeException ✔️
TextFormatFlags.ModifyString är föråldrad ✔️
DataGridView-API:er genererar InvalidOperationException ✔️
WinForms-appar använder Microsoft.NET.Sdk ✔️
Kontroller i statusfältet har tagits bort ✔️

WPF

Title Binärkompatibel Källkompatibel
OutputType inställt på WinExe ✔️
WPF-appar använder Microsoft.NET.Sdk ✔️

Se även