Das Paket Microsoft.DotNet.PlatformAbstractions wurde entfernt

Es werden keine neuen Versionen des Microsoft.DotNet.PlatformAbstractions-Pakets erzeugt.

Änderungsbeschreibung

Zuvor wurden neue Versionen der Microsoft.DotNet.PlatformAbstractions-Bibliothek zusammen mit neuen Versionen von .NET Core erstellt. In Zukunft werden der Bibliothek keine neuen Funktionen hinzugefügt, und es werden keine neuen Hauptversionen mehr veröffentlicht. Vorhandene Versionen der Bibliothek funktionieren jedoch weiterhin und werden gewartet.

Die Microsoft.DotNet.PlatformAbstractions-Bibliothek überschneidet sich mit APIs, die bereits in den System.*-Namespaces eingerichtet sind. Außerdem werden einige Microsoft.DotNet.PlatformAbstractions-APIs nicht mit dem gleichen Maß an Genauigkeit und langfristiger Unterstützbarkeit wie die übrigen System.*-APIs entworfen. Microsoft.DotNet.PlatformAbstractions verwendet beispielsweise die Platform-Enumeration, um die aktuelle Betriebssystemplattform zu beschreiben. Dieser Enumerationsentwurf wurde explizit abgelehnt, als die RuntimeInformation.IsOSPlatform(OSPlatform)-API entworfen wurde, um neue Plattformen und zukünftige Flexibilität zu ermöglichen.

Die von der Microsoft.DotNet.PlatformAbstractions-Bibliothek aktivierten Szenarios sind jetzt ohne sie möglich. Vorhandene Versionen funktionieren weiterhin, auch in .NET 5 und später, und werden zusammen mit früheren Versionen von .NET Core gewartet. Der Bibliothek werden jedoch keine neuen Funktionen hinzugefügt. Stattdessen werden anderen Bibliotheken und APIs neue Funktionen hinzugefügt.

Eingeführt in Version

5.0

  • Sie können weiterhin ältere Versionen der Bibliothek verwenden, wenn diese Ihre Anforderungen erfüllen.

  • Wenn die älteren Versionen Ihre Anforderungen nicht erfüllen, ersetzen Sie die Verwendung der PlatformAbstractions-APIs durch die empfohlenen Ersetzungen.

    PlatformAbstractions-API Empfohlener Ersatz
    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 und Environment.OSVersion

    Hinweis

    Die meisten Anwendungsfälle für RuntimeEnvironment.OperatingSystem und RuntimeEnvironment.OperatingSystemVersion dienen zu Anzeigezwecken, zum Beispiel die Anzeige eines Benutzers, der Protokollierung und der Telemetrie. Es wird nicht empfohlen, Entscheidungen zur Runtime basierend auf der Betriebssystemversion zu treffen. Environment.OSVersion gibt nun die korrekte Version für die Betriebssysteme Windows und macOS zurück. Für die meisten Unix-Distributionen ist das, was man als „Betriebssystemversion“ bezeichnet, nicht ganz so einfach. Es kann beispielsweise hier die Linux-Kernelversion sein oder die Distributionsversion. Bei den meisten Unix-Plattformen geben Environment.OSVersion und RuntimeInformation.OSDescription die Version zurück, die von uname zurückgegeben wird. Der empfohlene Ansatz zum Abrufen des Linux-Distributionsnamens und der Version ist es, die Datei /etc/os-release zu lesen.

Betroffene APIs

  • 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