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
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 watch incompatibile 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 |