Retirada del paquete Microsoft.DotNet.PlatformAbstractions
No se crearán nuevas versiones del paquete Microsoft.DotNet.PlatformAbstractions de NuGet.
Descripción del cambio
Anteriormente, junto a las nuevas versiones de .NET Core, también se producían nuevas versiones de la biblioteca Microsoft.DotNet.PlatformAbstractions. En el futuro, no se agregarán funcionalidades nuevas a la biblioteca ni se publicarán nuevas versiones principales. No obstante, las versiones existentes de la biblioteca seguirán funcionando y recibirán mantenimiento.
La biblioteca Microsoft.DotNet.PlatformAbstractions se superpone a las API que ya están establecidas en los espacios de nombres System.* Además, algunas API Microsoft.DotNet.PlatformAbstractions no se diseñaron con el mismo nivel de escrutinio y compatibilidad a largo plazo que el resto de las API System.* Por ejemplo, Microsoft.DotNet.PlatformAbstractions usa la enumeración Platform
para describir la plataforma actual del sistema operativo. Este diseño de enumeración se rechazó explícitamente cuando se diseñó la API RuntimeInformation.IsOSPlatform(OSPlatform) con el fin de admitir plataformas nuevas y favorecer la flexibilidad en el futuro.
Los escenarios habilitados por la biblioteca Microsoft.DotNet.PlatformAbstractions ahora son posibles sin la enumeración. Las versiones existentes seguirán funcionando, incluso en .NET 5 y versiones posteriores, y recibirán mantenimiento junto con las versiones anteriores de .NET Core. No obstante, no se agregarán nuevas funcionalidades a la biblioteca. En cambio, las otras bibliotecas y API sí recibirán nuevas funcionalidades.
Versión introducida
5.0
Acción recomendada
Puede seguir usando versiones anteriores de la biblioteca si cumplen sus requisitos.
En caso de que las versiones anteriores no satisfagan sus necesidades, reemplace los usos de las API
PlatformAbstractions
por las opciones de reemplazo recomendadas.API PlatformAbstractions
Reemplazo recomendado ApplicationEnvironment.ApplicationBasePath
AppContext.BaseDirectory HashCodeCombiner System.HashCode RuntimeEnvironment.GetRuntimeIdentifier()
RuntimeInformation.RuntimeIdentifier RuntimeEnvironment.OperatingSystemPlatform
RuntimeInformation.IsOSPlatform(OSPlatform) RuntimeEnvironment.RuntimeArchitecture
RuntimeInformation.ProcessArchitecture RuntimeEnvironment.OperatingSystem
RuntimeInformation.OSDescription RuntimeEnvironment.OperatingSystemVersion
RuntimeInformation.OSDescription y Environment.OSVersion Nota:
La finalidad de la mayoría de los casos de uso de
RuntimeEnvironment.OperatingSystem
yRuntimeEnvironment.OperatingSystemVersion
es de visualización (por ejemplo, mostrar a un usuario el registro y la telemetría). No se recomienda tomar decisiones en tiempo de ejecución basadas en una versión del sistema operativo (SO). Ahora, Environment.OSVersiondevuelve la versión correcta para los sistemas operativos Windows y macOS. En cambio, para la mayoría de las distribuciones de UNIX, no queda tan claro lo que se considera "versión del sistema operativo". Por ejemplo, podría ser la versión del kernel de Linux o podría ser la versión de distribución. En la mayoría de las plataformas UNIX, Environment.OSVersion y RuntimeInformation.OSDescription devuelven la versión devuelta poruname
. Para obtener el nombre y la versión de la distribución de Linux, lo recomendado es leer el archivo /etc/os-release.
API afectadas
Microsoft.DotNet.PlatformAbstractions.ApplicationEnvironment.ApplicationBasePath
- Microsoft.DotNet.PlatformAbstractions.HashCodeCombiner
Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment.GetRuntimeIdentifier()
Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment.OperatingSystem
Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment.OperatingSystemPlatform
Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment.OperatingSystemVersion
Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment.RuntimeArchitecture