Přejmenování nebo odebrání atributů OSPlatform
Následující atributy, které byly zavedeny v .NET 5 Preview 8, byly odebrány nebo přejmenovány: MinimumOSPlatformAttribute
, RemovedInOSPlatformAttribute
a ObsoletedInOSPlatformAttribute
.
Změna popisu
.NET 5 Preview 8 zavedl v System.Runtime.Versioning oboru názvů následující atributy:
MinimumOSPlatformAttribute
RemovedInOSPlatformAttribute
ObsoletedInOSPlatformAttribute
Pokud projekt ve verzi .NET 5 Preview 8 cílí na konkrétní variantu operačního systému .NET 5 pomocí monikeru cílové architektury, jako net5.0-windows
je například , sestavení přidá atribut na úrovni System.Runtime.Versioning.MinimumOSPlatformAttribute
sestavení.
V .NET 5 RC1 ObsoletedInOSPlatformAttribute
byla odebrána a MinimumOSPlatformAttribute
RemovedInOSPlatformAttribute
byla přejmenována takto:
Název Preview 8 | Rc1 a novější název |
---|---|
MinimumOSPlatformAttribute |
SupportedOSPlatformAttribute |
RemovedInOSPlatformAttribute |
UnsupportedOSPlatformAttribute |
V .NET 5 RC1 a novější, když projekt cílí na verzi specifické pro operační systém .NET 5 pomocí monikeru cílové architektury, jako net5.0-windows
je například , sestavení přidá atribut na úrovni SupportedOSPlatformAttribute sestavení.
Důvod změny
.NET 5 Preview 8 zavedl atributy System.Runtime.Versioning pro určení podporovaných platforem pro rozhraní API. Atributy využívají analyzátor kompatibility platformy k vytváření upozornění sestavení, když se na platformách spotřebovávají rozhraní API specifická pro platformu, která tato rozhraní API nepodporují.
Pro .NET 5 RC1 byla do analyzátoru kompatibility platformy přidána další funkce pro vyloučení platformy. Tato funkce umožňuje, aby rozhraní API byla na platformách operačního systému označena jako zcela nepodporovaná. Tato funkce zobrazila výzvu ke změnám atributů, včetně použití vhodnějších názvů. Odebrali ObsoletedInOSPlatformAttribute
jsme ho, protože už ho nepotřebujete.
Zavedená verze
5.0 RC1
Doporučená akce
Při změně cílení projektu z .NET 5 Preview 8 na .NET 5 RC1 může dojít k chybám sestavení nebo spuštění z důvodu těchto změn. Přejmenování MinimumOSPlatformAttribute
například pravděpodobně způsobí chyby, protože atribut se použije na sestavení specifická pro platformu v době sestavení a staré artefakty sestavení budou stále odkazovat na starý název rozhraní API.
Příklady chyb v době sestavení:
- chyba CS0246: Typ nebo název oboru názvů MinimumOSPlatformAttribute nebyl nalezen (chybí direktiva using nebo odkaz na sestavení?)
- Chyba CS0246: Typ nebo název oboru názvů RemovedInOSPlatformAttribute nebyl nalezen (chybí direktiva using nebo odkaz na sestavení?)
- chyba CS0246: Nelze najít typ nebo název oboru názvů "ObsoletedInOSPlatformAttribute" (chybí direktiva using nebo odkaz na sestavení?)
Příklad chyby za běhu:
Neošetřená výjimka. System.TypeLoadException: Nelze načíst typ System.Runtime.Versioning.MinimumOSPlatformAttribute ze sestavení System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.
Řešení těchto chyb:
- Aktualizujte všechny odkazy
MinimumOSPlatformAttribute
na SupportedOSPlatformAttribute. - Aktualizujte všechny odkazy
RemovedInOSPlatformAttribute
na UnsupportedOSPlatformAttribute. - Odeberte všechny odkazy na
ObsoletedInOSPlatformAttribute
. - Znovu sestavte projekt (nebo proveďte vyčištění + sestavení) a odstraňte staré artefakty sestavení.
Ovlivněná rozhraní API
System.Runtime.Versioning.MinimumOSPlatformAttribute
System.Runtime.Versioning.ObsoletedInOSPlatformAttribute
System.Runtime.Versioning.RemovedInOSPlatformAttribute