Winzige C#-Bibliothek, um festzustellen, ob Windows, Mac, Linux, Android, iOS

Ich brauche eine sehr kleine C#-Bibliothek, die mir sagt, auf welchem ​​Betriebssystem mein C#-Programm läuft.

Ich brauche die Versionsnummer des Betriebssystems nicht, nur etwas sehr Allgemeines, zum Beispiel wäre ich mit einer der folgenden zufrieden:

Windows, Mac, Linux, Android, iOS

Anforderungen:

  • Open Source, idealerweise Public Domain
  • Einfach als DLL herunterladbar

Keine der Lösungen unter https://stackoverflow.com/questions/10138040/how-to-detect-properly-windows-linux-mac-operating-systems ist robust+einfach genug.

Antworten (1)

C# selbst bietet tatsächlich eine Methode, um zu erkennen, welches Betriebssystem Sie auf einer grundlegenden Ebene ausführen. Alle Betriebssysteme, die es erkennen kann, finden Sie unter dem Link. Ist es das, wonach Sie gesucht haben?

OperatingSystem os = Environment.OSVersion;
PlatformID     pid = os.Platform;
switch (pid) 
    {
    case PlatformID.Win32NT:
    case PlatformID.Win32S:
    case PlatformID.Win32Windows:
    case PlatformID.WinCE:
        Console.WriteLine("I'm on windows!");
        break;
    case PlatformID.Unix:
        Console.WriteLine("I'm a linux box!");
        break;
    case PlatformID.MacOSX:
        Console.WriteLine("I'm a mac!");
        break;
    default:
        Console.WriteLine("No Idea what I'm on!");
        break;
    }
Anscheinend ist der Wert manchmal sogar für MacOS Unix: stackoverflow.com/questions/10138040 (auch von meiner Frage verlinkt)
@Nicolas Raou: Das liegt daran, dass OSX auch Unix ist.
@StefanSteiger Technisch gesehen ist ein solcher Wert nicht so informativ wie die Frage. Wenn es eine gibt PlatformID.MacOSX, dann wäre eine Lösung, die es PlatformID.MacOSXfür alle MacOS-Systeme gibt, besser.