Condividi tramite


Modifiche che causano un'interruzione in .NET 7

Se si esegue la migrazione di un'app a .NET 7, le modifiche che causano un'interruzione elencate qui potrebbero influire sull'utente. Le modifiche vengono raggruppate in base all'area tecnologica, ad esempio ASP.NET Core o Windows Forms.

Questo articolo indica se ogni modifica che causa un'interruzione è compatibile a livello binario o compatibile a livello di origine:

  • Compatibile a livello binario: i file binari esistenti verranno caricati ed eseguiti correttamente senza ricompilare e il comportamento di runtime non cambierà.
  • Compatibile a livello di origine: il codice sorgente verrà compilato correttamente senza modifiche quando viene specificato come destinazione il nuovo runtime o quando si usa il nuovo SDK o il nuovo componente.

ASP.NET Core

Title Compatibile a livello binario Compatibile a livello di origine
Le azioni del controller API provano a dedurre i parametri dall'inserimento delle dipendenze ✔️
Precedenza delle variabili di ambiente con prefisso ASPNET ✔️ ✔️
AuthenticateAsync per provider di autenticazione remota ✔️
Autenticazione nelle app WebAssembly ✔️
Schema di autenticazione predefinito ✔️
ID evento per alcuni messaggi di log Microsoft.AspNetCore.Mvc.Core modificati ✔️
Endpoint del file di fallback ✔️
IHubClients e IHubCallerClients nascondono i membri ✔️
Kestrel: associazione HTTPS predefinita rimossa ✔️
Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv e libuv.dll rimossi
Microsoft.Data.SqlClient aggiornato alla versione 4.0.1 ✔️
Il middleware non rinvia più all'endpoint con delegato di richiesta Null ✔️
Il rilevamento MVC di un corpo vuoto nell'associazione di modelli è stato modificato ✔️
Modifiche dell'API di memorizzazione dell'output nella cache
I metodi dell'hub SignalR provano a risolvere i parametri dall'inserimento delle dipendenze ✔️

Principali librerie .NET

Title Compatibile a livello binario Compatibile a livello di origine
API obsolete con ID di diagnostica predefinito ✔️
API obsolete con ID di diagnostica non predefiniti ✔️
Le API di serializzazione BinaryFormatter generano errori del compilatore ✔️
BrotliStream non consente più valori CompressionLevel non definiti ✔️
Progetti C++/CLI in Visual Studio ✔️
Modifiche alle eccezioni delle API invoke con reflection ✔️
Assembly ritirabile in AssemblyLoadContext non ritirabile ✔️
Modifica della precisione dei metodi di addizione DateTime ✔️ ✔️
Modifica del comportamento del metodo Equals per NaN ✔️
Comportamento di callback di EventSource ✔️ ✔️
Vincolo di tipo generico in PatternContext<T>
Strategia FileStream legacy rimossa ✔️
Supporto della libreria per i framework meno recenti
Precisione massima per le stringhe di formato numerico ✔️
Modelli Regex con intervalli corretti ✔️ ✔️
SerializationFormat.Binary è obsoleto
Opzione di configurazione System.Drawing.Common rimossa ✔️ ✔️
Pacchetto NuGet System.Runtime.CompilerServices.Unsafe ✔️ ✔️
Campi Ora su collegamenti simbolici ✔️
Rilevamento delle voci della cache collegate ✔️
Convalida di CompressionLevel for BrotliStream ✔️

Impostazione

Title Compatibile a livello binario Compatibile a livello di origine
Voce System.diagnostics in app.config ✔️

Crittografia

Title Compatibile a livello binario Compatibile a livello di origine
La decrittografia di EnvelopedCms non esegue il doppio annullamento del wrapping ✔️
Tempo di verifica di Dynamic X509ChainPolicy ✔️
Analisi di X500DistinguishedName dei nomi descrittivi ✔️

Distribuzione

Title Compatibile a livello binario Compatibile a livello di origine
Tutti gli assembly sottoposti a trimming per impostazione predefinita ✔️
La ricerca a più livelli è disabilitata ✔️
Percorso host x86 in Windows a 64 bit ✔️ ✔️
TrimmerDefaultAction è deprecato ✔️

Entity Framework Core

Modifiche che causano un'interruzione in EF Core 7

Estensioni

Title Compatibile a livello binario Compatibile a livello di origine
L'associazione della configurazione al dizionario estende i valori ✔️ ✔️
ContentRootPath per le app avviate dalla shell di Windows ✔️
Prefissi delle variabili di ambiente ✔️

Globalizzazione

Title Compatibile a livello binario Compatibile a livello di origine
Le API di globalizzazione usano librerie di ICU in Windows Server ✔️

Interop

Title Compatibile a livello binario Compatibile a livello di origine
RuntimeInformation.OSArchitecture nell'emulazione ✔️

.NET MAUI

Title Compatibile a livello binario Compatibile a livello di origine
I costruttori accettano l'interfaccia di base anziché un tipo concreto ✔️
Metodi helper di direzione del flusso rimossi
Nuovo parametro UpdateBackground ✔️
Proprietà ScrollToRequest rinominata
Alcune API di Windows vengono rimosse

Rete

Title Compatibile a livello binario Compatibile a livello di origine
AllowRenegotiation default è falso
Payload ping personalizzati in Linux ✔️
I metodi Socket.End non generano ObjectDisposedException ✔️

SDK e MSBuild

Title Compatibile a livello binario Compatibile a livello di origine
RuntimeIdentifier automatico per determinati progetti ✔️
RuntimeIdentifier automatico solo per la pubblicazione
L'output della console CLI usa UTF-8
Codifica della console non UTF-8 dopo il completamento ✔️
Serializzazione di MSBuild di tipi personalizzati in .NET 7
Installazioni side-by-side dell'SDK
Manifesti degli strumenti nella cartella radice ✔️ ✔️
Requisiti di versione per .NET 7 SDK ✔️ ✔️
dotnet test: impostare -a su alias --arch invece di --test-adapter-path
dotnet test: impostare -r su alias --runtime invece di --results-dir
L'opzione --output non è più valida per i comandi a livello di soluzione
L'SDK non chiama più ResolvePackageDependencies ✔️

Serializzazione

Title Compatibile a livello binario Compatibile a livello di origine
DataContractSerializer mantiene il segno durante la deserializzazione di -0 ✔️
Deserializzare il tipo di versione con spazi vuoti iniziali o finali ✔️
Il costruttore di copia JsonSerializerOptions include JsonSerializerContext ✔️
Serializzazione polimorfica per i tipi di oggetto ✔️
Fallback del generatore di origine System.Text.Json ✔️

WinForms

Title Compatibile a livello binario Compatibile a livello di origine
Obsolescenze e avvisi ✔️
Alcune API generano ArgumentNullException ✔️

WPF

Title Compatibile a livello binario Compatibile a livello di origine Compatibile
Ripristino del comportamento delle operazioni di trascinamento della selezione in editor di testo ✔️ ✔️

XML e XSLT

Title Compatibile a livello binario Compatibile a livello di origine
XmlSecureResolver è obsoleto

Vedi anche