Modifiche che causano un'interruzione in .NET 8
Se si esegue la migrazione di un'app a .NET 8, 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.
ASP.NET Core
Title | Tipo di modifica |
---|---|
ConcurrencyLimiterMiddleware è obsoleto | Origine non compatibile |
Convertitori personalizzati per la serializzazione rimossa | Modifiche funzionali |
ISystemClock è obsoleto | Origine non compatibile |
API minime: i parametri IFormFile richiedono controlli anti-falsi | Modifiche funzionali |
Middleware di limitazione della frequenza richiede addRateLimiter | Modifiche funzionali |
Eventi del token di sicurezza restituiscono un JsonWebToken | Modifiche funzionali |
L'impostazione predefinita di TrimMode è completa per i progetti SDK Web | Origine non compatibile |
Contenitori
Title | Tipo di modifica |
---|---|
Pacchetto 'ca-certificates' rimosso dalle immagini Alpine | Binario incompatibile |
Immagini del contenitore Debian aggiornate a Debian 12 | Modifica binaria non compatibile/comportamentale |
La porta predefinita ASP.NET Core è stata modificata in 8080 | Modifiche funzionali |
Pacchetto Kerberos rimosso dalle immagini Alpine e Debian | Binario incompatibile |
Pacchetto 'libintl' rimosso dalle immagini Alpine | Modifiche funzionali |
I tag contenitore multipiattaforma sono solo Linux | Modifiche funzionali |
Nuovo utente 'app' nelle immagini Linux | Modifiche funzionali |
Principali librerie .NET
Crittografia
Title | Tipo di modifica | Presentazione |
---|---|---|
Dimensioni dei tag di autenticazione AesGcm in macOS | Modifiche funzionali | Preview 1 |
RSA. EncryptValue e RSA. DecryptValue obsoleto | Origine non compatibile | Preview 1 |
Distribuzione
Title | Tipo di modifica |
---|---|
L’host determina gli asset specifici del RID | Modifica binaria non compatibile/comportamentale |
.NET Monitor include solo immagini senza distribuzione | Modifiche funzionali |
L'impostazione predefinita StripSymbols è true | Modifiche funzionali |
Entity Framework Core
Modificheche causano un'interruzione in EF Core 8
Estensioni
Title | Tipo di modifica |
---|---|
Il comportamento di ActivatorUtilities.CreateInstance è coerente | Modifiche funzionali |
ActivatorUtilities.CreateInstance richiede un provider non Null | Modifiche funzionali |
ConfigurationBinder genera un'eccezione per il valore non corrispondente | Modifiche funzionali |
Il pacchetto ConfigurationManager non fa più riferimento a System.Security.Permissions | Origine non compatibile |
Il pacchetto DirectoryServices non fa più riferimento a System.Security.Permissions | Origine non compatibile |
Chiavi vuote aggiunte al dizionario dal gestore di associazione di configurazione | Modifiche funzionali |
HostApplicationBuilderSettings.Args rispettato dal ctor HostApplicationBuilder | Modifiche funzionali |
ManagementDateTimeConverter.ToDateTime restituisce un'ora locale | Modifiche funzionali |
Modifica della formattazione di System.Formats.Cbor DateTimeOffset | Modifiche funzionali |
Globalizzazione
Title | Tipo di modifica |
---|---|
Convertitori di data e ora rispettano l'argomento delle impostazioni cultura | Modifiche funzionali |
L'impostazione predefinita TwoDigitYearMax è 2049 | Modifiche funzionali |
Interop
Title | Tipo di modifica |
---|---|
CreateObjectFlags.Unwrap solo unwraps nell'istanza di destinazione | Modifiche funzionali |
I marshaller personalizzati richiedono membri aggiuntivi | Origine non compatibile |
L'API IDispatchImplAttribute viene rimossa | Binario incompatibile |
Costruttore predefinito pubblico implicito JSFunctionBinding rimosso | Binario incompatibile |
I tipi SafeHandle devono avere un costruttore pubblico | Origine non compatibile |
Rete
Title | Tipo di modifica |
---|---|
SendFile genera notSupportedException per i socket senza connessione | Modifiche funzionali |
Le informazioni utente negli mailto: URI sono confrontate |
Modifiche funzionali |
Riflessione
Title | Tipo di modifica |
---|---|
IntPtr non più usato per i tipi di puntatore a funzione | Modifiche funzionali |
SDK
Serializzazione
Title | Tipo di modifica |
---|---|
BinaryFormatter disabilitato per la maggior parte dei progetti | Modifiche funzionali |
I progetti PublishedTrimmed hanno esito negativo di serializzazione basata su reflection | Modifiche funzionali |
Il deserializzatore basato su reflection risolve i metadati | Modifiche funzionali |
WinForms
Title | Tipo di modifica |
---|---|
Modifiche al layout di ancoraggio | Modifiche funzionali |
Certificati verificati prima di caricare immagini remote in PictureBox | Modifiche funzionali |
DateTimePicker.Text è una stringa vuota | Modifiche funzionali |
DefaultValueAttribute rimosso da alcune proprietà | Modifiche funzionali |
ctor ExceptionCollection genera l'eccezione ArgumentException | Modifiche funzionali |
Ridimensionamento dei moduli in base a AutoScaleMode | Modifiche funzionali |
Il valore predefinito ImageList.ColorDepth è Depth32Bit | Modifiche funzionali |
System.Windows.Extensions non fa riferimento a System.Drawing.Common | Origine non compatibile |
TableLayoutStyleCollection genera argumentException | Modifiche funzionali |
I moduli di primo livello modificano le dimensioni minime e massime in punti per pollice | Modifiche funzionali |
L’obsolescenza WFDEV002 è ora un errore | Origine non compatibile |