Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Se stai eseguendo la migrazione di un'app a .NET 9, le modifiche incompatibili elencate qui potrebbero influire su di te. 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:
Binari non compatibili: quando vengono eseguiti sul nuovo runtime o componente, i file binari esistenti possono riscontrare una modifica che comporta un cambiamento radicale nel comportamento, come un errore di caricamento o esecuzione, e, in tal caso, richiedono 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 comportamentale : 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.
ASP.NET Nucleo
| Titolo | Tipo di modifica |
|---|---|
| DefaultKeyResolution.ShouldGenerateNewKey ha modificato il significato | Cambiamento comportamentale |
| L'esportazione del certificato di sviluppo non crea più la cartella | Cambiamento comportamentale |
| Il middleware delle intestazioni inoltrate ignora le intestazioni X-Forwarded-* da proxy sconosciuti | Cambiamento comportamentale |
| HostBuilder abilita ValidateOnBuild/ValidateScopes nell'ambiente di sviluppo | Cambiamento comportamentale |
| Le API legacy di Mono ed Emscripten non sono esportate nello spazio dei nomi globale | Origine non compatibile |
| Tipi di middleware con più costruttori | Cambiamento comportamentale |
Contenitori
| Titolo | Tipo di modifica | Versione introdotta |
|---|---|---|
| Le immagini dei contenitori non installano più zlib | Cambiamento comportamentale | Anteprima 7 |
| immagini di .NET Monitor semplificate ai soli tag di versione | Cambiamento comportamentale | Anteprima 5 |
Principali librerie .NET
Crittografia
| Titolo | Tipo di modifica | Versione introdotta |
|---|---|---|
| API rimosse da System.Security.Cryptography.Pkcs netstandard2.0 | Origine non compatibile | GA |
| SafeEvpPKeyHandle.DuplicateHandle incrementa i riferimenti dell'handle | Cambiamento comportamentale | Anteprima 7 |
| Alcuni costruttori X509Certificate2 e X509Certificate sono obsoleti | Origine non compatibile | Anteprima 7 |
| Durata semplificata della chiave privata di Windows | Cambiamento comportamentale | Anteprima 7 |
Distribuzione
| Titolo | Tipo di modifica | Versione introdotta |
|---|---|---|
| Pacchetti di runtime desktop Windows/macOS/Linux MonoVM deprecati | Origine non compatibile | Anteprima 7 |
Entity Framework Core
Modifiche di rilievo in EF Core 9
Interoperabilità
| Titolo | Tipo di modifica | Versione introdotta |
|---|---|---|
| CET supportato per impostazione predefinita | Incompatibile a livello binario | Anteprima 6 |
Compilatore JIT
| Titolo | Tipo di modifica | Versione introdotta |
|---|---|---|
| Le conversioni da virgola mobile a integer stanno saturando | Cambiamento comportamentale | Anteprima 4 |
| Rimozione di alcune API SVE | Origine non compatibile | RC 2 |
Rete
| Titolo | Tipo di modifica | Versione introdotta |
|---|---|---|
| Obsolescenze delle API | Origine non compatibile | Anteprima 6 |
Il report delle metriche di HttpClient viene generato incondizionatamenteserver.port |
Cambiamento comportamentale | Anteprima 7 |
| Per impostazione predefinita, HttpClientFactory oscura i valori delle intestazioni durante la registrazione | Cambiamento comportamentale | RC 1 |
| HttpClientFactory usa SocketsHttpHandler come gestore primario | Cambiamento comportamentale | Anteprima 6 |
| HttpListenerRequest.UserAgent può essere nullo | Origine non compatibile | Anteprima 1 |
| Redazione di query URI negli eventi HttpClient EventSource | Cambiamento comportamentale | Anteprima 7 |
| Redazione di query URI nei registri di IHttpClientFactory | Cambiamento comportamentale | Anteprima 7 |
SDK e MSBuild
| Titolo | Tipo di modifica | Versione introdotta |
|---|---|---|
dotnet sln add non permette nomi di file non validi |
Cambiamento comportamentale | 9.0.2xx |
dotnet watchincompatibile con Ricaricamento rapido per i framework precedenti |
Cambiamento comportamentale | RC 1 |
dotnet workload modifica dell'output dei comandi |
Cambiamento comportamentale | Anteprima 1 |
installer versione del repository non più documentata |
Cambiamento comportamentale | Anteprima 5 |
| Gestione delle risorse delle culture personalizzate di MSBuild | Cambiamento comportamentale | 9.0.200/9.0.300 |
| Nuovo RID predefinito usato quando è destinato a .NET Framework | Origine non compatibile | GA |
| Terminal Logger è predefinito | Cambiamento comportamentale | Anteprima 1 |
| Requisiti di versione per .NET 9 SDK | Origine non compatibile | GA |
| Avviso emesso per la destinazione .NET Standard 1.x | Origine non compatibile | Anteprima 6 |
| Avviso emesso per la destinazione .NET 7 | Origine non compatibile | GA |
Serializzazione
| Titolo | Tipo di modifica | Versione introdotta |
|---|---|---|
| BinaryFormatter solleva sempre un'eccezione | Cambiamento comportamentale | Anteprima 6 |
| Le proprietà Nullable di JsonDocument deserializzano in JsonValueKind.Null | Cambiamento comportamentale | Anteprima 1 |
| it-IT: Il lettore di metadati System.Text.Json ora decodifica i nomi delle proprietà dei metadati | Cambiamento comportamentale | GA |
WinForms
| Titolo | Tipo di modifica | Versione introdotta |
|---|---|---|
| BindingSource.SortDescriptions non restituisce valori Null | Cambiamento comportamentale | Anteprima 1 |
| Modifiche alle annotazioni di nullabilità | Origine non compatibile | Anteprima 1 |
| ComponentDesigner.Initialize genera ArgumentNullException | Cambiamento comportamentale | Anteprima 1 |
| DataGridViewRowAccessibleObject.Name indice di riga iniziale | Cambiamento comportamentale | Anteprima 1 |
| Il supporto di IMsoComponent richiede il consenso esplicito | Cambiamento comportamentale | Anteprima 2 |
| Nuovi analizzatori della sicurezza | Origine non compatibile | RC 1 |
| Nessuna eccezione se DataGridView è Null | Cambiamento comportamentale | Anteprima 1 |
| PictureBox genera eccezioni HttpClient | Cambiamento comportamentale | Anteprima 6 |
| StatusStrip usa un renderer predefinito diverso | Cambiamento comportamentale | GA |
WPF (Windows Presentation Foundation)
| Titolo | Tipo di modifica | Versione introdotta |
|---|---|---|
GetXmlNamespaceMaps modifica del tipo |
Modifica comportamentale/Origine non compatibile | Anteprima 3 |