Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se han quitado o cambiado el nombre de los atributos siguientes que se introdujeron en .NET 5 Preview 8: MinimumOSPlatformAttribute
, RemovedInOSPlatformAttribute
y ObsoletedInOSPlatformAttribute
.
Descripción del cambio
.NET 5 Preview 8 introdujo los siguientes atributos en el System.Runtime.Versioning espacio de nombres.
MinimumOSPlatformAttribute
RemovedInOSPlatformAttribute
ObsoletedInOSPlatformAttribute
En .NET 5 Preview 8, cuando un proyecto tiene como destino un tipo específico del sistema operativo de .NET 5 mediante un identificador de la plataforma de destino como net5.0-windows
, la compilación agrega un atributo a nivel de ensamblado System.Runtime.Versioning.MinimumOSPlatformAttribute
.
En .NET 5 RC1, ObsoletedInOSPlatformAttribute
se ha eliminado, y los nombres de MinimumOSPlatformAttribute
y RemovedInOSPlatformAttribute
se han cambiado como se indica a continuación:
Nombre en Preview 8 | Nombre en RC1 y versiones posteriores |
---|---|
MinimumOSPlatformAttribute |
SupportedOSPlatformAttribute |
RemovedInOSPlatformAttribute |
UnsupportedOSPlatformAttribute |
En .NET 5 RC1 y versiones posteriores, cuando un proyecto tiene como destino un tipo específico del sistema operativo de .NET 5 mediante un moniker de la plataforma de destino como net5.0-windows
, la compilación agrega un atributo de nivel SupportedOSPlatformAttribute de ensamblado.
Motivo del cambio
.NET 5 Preview 8 introdujo atributos en System.Runtime.Versioning para especificar plataformas admitidas para las API. El analizador de compatibilidad de plataforma consume los atributos para generar advertencias de compilación cuando se consumen API específicas de la plataforma en plataformas que no admiten esas API.
Para .NET 5 RC1, se ha agregado una característica adicional al analizador de compatibilidad de la plataforma para la exclusión de plataformas. La característica permite que las API se marquen como totalmente no admitidas en las plataformas del sistema operativo. Esa característica solicita cambios en los atributos, incluido el uso de nombres más adecuados.
ObsoletedInOSPlatformAttribute
se quitó porque ya no era necesario.
Versión introducida
5.0 RC1
Acción recomendada
Al volver a configurar el proyecto de .NET 5 Preview 8 a .NET 5 RC1, es posible que encuentre errores en tiempo de ejecución o compilación debido a estos cambios. Por ejemplo, es probable que el cambio de nombre de MinimumOSPlatformAttribute
genere errores, ya que el atributo se aplica a ensamblados específicos de la plataforma en tiempo de compilación y los artefactos de compilación antiguos seguirán teniendo referencia al nombre de la API anterior.
Ejemplo de errores en tiempo de compilación:
- Error CS0246: No se ha encontrado el tipo o el nombre del espacio de nombres "MinimumOSPlatformAttribute" (¿falta una directiva "using" o una referencia de ensamblado?)
- Error CS0246: No se ha encontrado el tipo o el nombre del espacio de nombres "RemovedInOSPlatformAttribute" (¿falta una directiva "using" o una referencia de ensamblado?)
- Error CS0246: No se ha encontrado el tipo o el nombre del espacio de nombres "ObsoletedInOSPlatformAttribute" (¿falta una directiva "using" o una referencia de ensamblado?)
Ejemplo de error en tiempo de ejecución:
Excepción no controlada. System.TypeLoadException: no se pudo cargar el tipo 'System.Runtime.Versioning.MinimumOSPlatformAttribute' del ensamblado 'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
Para resolver estos errores:
- Actualice las referencias de
MinimumOSPlatformAttribute
a SupportedOSPlatformAttribute. - Actualice las referencias de
RemovedInOSPlatformAttribute
a UnsupportedOSPlatformAttribute. - Quite las referencias a
ObsoletedInOSPlatformAttribute
. - Recompile el proyecto (o realice una limpieza y compilación) para eliminar los artefactos de compilación antiguos.
Las APIs afectadas
System.Runtime.Versioning.MinimumOSPlatformAttribute
System.Runtime.Versioning.ObsoletedInOSPlatformAttribute
System.Runtime.Versioning.RemovedInOSPlatformAttribute