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.
Gli attributi seguenti introdotti in .NET 5 Preview 8 sono stati rimossi o rinominati: MinimumOSPlatformAttribute, RemovedInOSPlatformAttributee ObsoletedInOSPlatformAttribute.
Descrizione delle modifiche
.NET 5 Preview 8 ha introdotto gli attributi seguenti nello spazio dei nomi System.Runtime.Versioning:
MinimumOSPlatformAttributeRemovedInOSPlatformAttributeObsoletedInOSPlatformAttribute
In .NET 5 Preview 8, quando un progetto è destinato a una versione specifica per sistema operativo di .NET 5 usando un moniker del framework di destinazione, la compilazione aggiunge un attributo a livello net5.0-windows di assembly.
In .NET 5 RC1, ObsoletedInOSPlatformAttribute è stato rimosso e MinimumOSPlatformAttribute e RemovedInOSPlatformAttribute sono stati rinominati come segue:
| Anteprima nome 8 | RC1 e nome successivo |
|---|---|
MinimumOSPlatformAttribute |
SupportedOSPlatformAttribute |
RemovedInOSPlatformAttribute |
UnsupportedOSPlatformAttribute |
In .NET 5 RC1 e versioni successive, quando un progetto ha come destinazione una versione specifica per sistema operativo di .NET 5 usando un moniker del framework di destinazione, ad net5.0-windows, la compilazione aggiunge un attributo a livello di SupportedOSPlatformAttribute assembly.
Motivo della modifica
.NET 5 Preview 8 ha introdotto gli attributi in System.Runtime.Versioning per specificare le piattaforme supportate per le API. Gli attributi vengono utilizzati dall'analizzatore di compatibilità della piattaforma per generare avvisi di compilazione quando le API specifiche della piattaforma vengono utilizzate su piattaforme che non supportano tali API.
Per .NET 5 RC1 è stata aggiunta un'ulteriore funzionalità all'analizzatore della compatibilità della piattaforma per l'esclusione della piattaforma. La funzionalità consente di contrassegnare le API come completamente non supportate nelle piattaforme del sistema operativo. Tale funzionalità ha richiesto modifiche agli attributi, incluso l'uso di nomi più adatti. L'oggetto ObsoletedInOSPlatformAttribute è stato rimosso perché non era più necessario.
Versione introdotta
5.0 RC1
Azione consigliata
Quando si ridestina il progetto da .NET 5 Preview 8 a .NET 5 RC1, è possibile che si verifichino errori di compilazione o runtime a causa di queste modifiche. Ad esempio, è probabile che la ridenominazione di MinimumOSPlatformAttribute generi degli errori, perché l'attributo viene applicato agli assembly specifici della piattaforma in fase di compilazione e gli artefatti di compilazione precedenti faranno ancora riferimento al vecchio nome dell'API.
Esempi di errori in fase di compilazione:
- errore CS0246: Impossibile trovare il tipo o il nome dello spazio dei nomi 'MinimumOSPlatformAttribute' (forse manca una direttiva using o un riferimento all'assembly?)
- errore CS0246: Impossibile trovare il tipo o il nome dello spazio dei nomi 'RemovedInOSPlatformAttribute' (potrebbe mancare una direttiva 'using' o un riferimento all'assembly?)
- errore CS0246: Il tipo o il nome del namespace 'ObsoletedInOSPlatformAttribute' non può essere trovato (manca una direttiva using o un riferimento all'assembly?)
Esempio di errore di runtime:
Eccezione non gestita. System.TypeLoadException: impossibile caricare il tipo 'System.Runtime.Versioning.MinimumOSPlatformAttribute' dall'assembly 'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
Per risolvere questi errori:
- Aggiornare tutti i riferimenti di
MinimumOSPlatformAttributea SupportedOSPlatformAttribute. - Aggiornare tutti i riferimenti di
RemovedInOSPlatformAttributea UnsupportedOSPlatformAttribute. - Rimuovere tutti i riferimenti a
ObsoletedInOSPlatformAttribute. - Ricompilare il progetto (o eseguire clean + build) per eliminare gli artefatti di compilazione precedenti.
Le API interessate
System.Runtime.Versioning.MinimumOSPlatformAttributeSystem.Runtime.Versioning.ObsoletedInOSPlatformAttributeSystem.Runtime.Versioning.RemovedInOSPlatformAttribute