Sdílet prostřednictvím


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, RemovedInOSPlatformAttributea 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-windowsje například , sestavení přidá atribut na úrovni System.Runtime.Versioning.MinimumOSPlatformAttribute sestavení.

V .NET 5 RC1 ObsoletedInOSPlatformAttribute byla odebrána a MinimumOSPlatformAttributeRemovedInOSPlatformAttribute 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-windowsje 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

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