Condividi tramite


Modifiche che causano un'interruzione in .NET 9

Se si esegue la migrazione di un'app a .NET 9, 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 classifica ogni modifica che causa un'interruzione come binaria non compatibile o origine non compatibile o come modifica funzionale:

  • Binario non compatibile: quando viene eseguita sul nuovo runtime o componente, i file binari esistenti possono riscontrare una modifica che causa un'interruzione funzionale, ad esempio un errore di caricamento o esecuzione e, in tal caso, richiedere la ricompilazione.

  • Origine non compatibile : quando viene ricompilata usando il nuovo SDK o componente oppure per specificare come destinazione il nuovo runtime, il codice sorgente esistente potrebbe richiedere modifiche all'origine per la compilazione.

  • Modifica funzionale: il codice esistente e i file binari possono comportarsi in modo diverso in fase di esecuzione. Se il nuovo comportamento non è desiderato, è necessario aggiornare e ricompilare il codice esistente.

Nota

Questo articolo è in fase di aggiornamento. Non è un elenco completo delle modifiche che causano un'interruzione in .NET 9. Per eseguire query sulle modifiche che causano un'interruzione ancora in fase di pubblicazione, vedere Problemi di .NET.

ASP.NET Core

Title Tipo di modifica Versione introdotta
DefaultKeyResolution.ShouldGenerateNewKey ha modificato il significato Modifiche funzionali Preview 3
L'esportazione del certificato di sviluppo non crea più la cartella Modifiche funzionali RC 1
HostBuilder abilita ValidateOnBuild/ValidateScopes nell'ambiente di sviluppo Modifiche funzionali Preview 7
Tipi di middleware con più costruttori Modifiche funzionali RC 1

Contenitori

Title Tipo di modifica Versione introdotta
Le immagini del contenitore .NET 9 non installano più zlib Modifiche funzionali Preview 7

Principali librerie .NET

Title Tipo di modifica Versione introdotta
L’aggiunta di un oggetto ZipArchiveEntry con CompressionLevel imposta i flag dei bit dell'intestazione della directory centrale ZIP per uso generico Modifiche funzionali Preview 5
Supporto UnsafeAccessor alterato per generici non aperti Modifiche funzionali Preview 6
Obsolescenze API con ID di diagnostica personalizzati Origine non compatibile (Multipla)
Lunghezza massima BigInteger Modifiche funzionali Preview 6
BinaryReader.GetString() restituisce "\uFFFD" in sequenze in formato non valido Modifiche funzionali Preview 7
Creazione del tipo di matrice di System.Void non consentita Modifiche funzionali Preview 1
Predefiniti Equals() e GetHashCode() generano un'eccezione per i tipi contrassegnati con InlineArrayAttribute Modifiche funzionali Preview 6
EnumConverter convalida i tipi registrati da enumerare Modifiche funzionali Preview 7
FromKeyedServicesAttribute non inserisce più un parametro non con chiave Modifiche funzionali RC 1
Il callback iniziale IncrementingPollingCounter è asincrono Modifiche funzionali RC 1
Viene applicato il limite di dimensioni degli struct della matrice inline Modifiche funzionali Preview 1
InMemoryDirectoryInfo antepone rootDir ai file Modifiche funzionali Preview 1
Nuovi overload TimeSpan.From*() che accettano numeri interi Origine non compatibile Preview 3
RuntimeHelpers.GetSubArray restituisce un tipo diverso Modifiche funzionali Preview 1
Overload String.Trim(params ReadOnlySpan<char>) rimosso Origine/file binario non compatibile Disponibilità generale
Supporto per le variabili di ambiente vuote Modifiche funzionali Preview 6
I nomi e i commenti ZipArchiveEntry rispettano il flag UTF8 Modifiche funzionali RC 1

Crittografia

Title Tipo di modifica Versione introdotta
SafeEvpPKeyHandle.DuplicateHandle aumenta i riferimenti dell'handle Modifiche funzionali Preview 7
Alcuni costruttori X509Certificate2 e X509Certificate sono obsoleti Origine non compatibile Preview 7
Durata semplificata della chiave privata di Windows Modifiche funzionali Preview 7

Distribuzione

Title Tipo di modifica Versione introdotta
Pacchetti di runtime Windows/macOS/Linux MonoVM deprecati Origine non compatibile Preview 7

Interop

Title Tipo di modifica Versione introdotta
CET supportato per impostazione predefinita Binario incompatibile Preview 6

Compilatore JIT

Title Tipo di modifica Versione introdotta
Le conversioni da virgola mobile a integer stanno saturando Modifiche funzionali Preview 4
Rimozione di alcune API SVE Origine non compatibile RC 2

Rete

Title Tipo di modifica Versione introdotta
Api obsolete Origine non compatibile Preview 6
Report server.port delle metriche HttpClient in modo incondizionato Modifiche funzionali Preview 7
HttpClientFactory che registra i valori di intestazione per impostazione predefinita Modifiche funzionali RC 1
HttpClientFactory usa SocketsHttpHandler come gestore primario Modifiche funzionali Preview 6
HttpListenerRequest.UserAgent ammette i valori Null Origine non compatibile Preview 1
Rollforward di query URI negli eventi HttpClient EventSource Modifiche funzionali Preview 7
Rollforward di query URI nei log IHttpClientFactory Modifiche funzionali Preview 7

SDK e MSBuild

Title Tipo di modifica Versione introdotta
dotnet watchincompatibile con Ricaricamento rapido per i framework precedenti Modifiche funzionali RC 1
dotnet workload modifica dell'output dei comandi Modifiche funzionali Preview 1
installer versioni del repossitory non più documentate Modifiche funzionali Preview 5
Il logger del terminale è predefinito Modifiche funzionali Preview 1
Requisiti di versione per .NET 9 SDK Origine non compatibile Disponibilità generale
Avviso generato per la destinazione .NET Standard 1.x Origine non compatibile Preview 6
Avviso generato per la destinazione .NET 7 Origine non compatibile Disponibilità generale

Serializzazione

Title Tipo di modifica Versione introdotta
BinaryFormatter genera sempre Modifiche funzionali Preview 6

WinForms

Title Tipo di modifica Versione introdotta
BindingSource.SortDescriptions non restituisce valori Null Modifiche funzionali Preview 1
Modifiche alle annotazioni di valori Null Origine non compatibile Preview 1
ComponentDesigner.Initialize genera ArgumentNullException Modifiche funzionali Preview 1
Indice di riga iniziale DataGridViewRowAccessibleObject.Name Modifiche funzionali Preview 1
Il supporto di IMsoComponent richiede il consenso esplicito Modifiche funzionali Preview 2
Nuovi analizzatori della sicurezza Origine non compatibile RC 1
Nessuna eccezione se DataGridView è Null Modifiche funzionali Preview 1
PictureBox genera eccezioni HttpClient Modifiche funzionali Preview 6

WPF

Title Tipo di modifica Versione introdotta
GetXmlNamespaceMaps modifica del tipo Modifica comportamentale/Origine non compatibile Preview 3

Vedi anche