C # compilato in mono – Rileva sistema operativo

Sto cercando di ottenere un’app C # in esecuzione su OSX che non sia esattamente indolore. Per risolvere alcuni dei problemi a breve termine, sto pensando di impostare alcune regole specifiche quando è in esecuzione in OSX.

Ma … Cosa posso usare per determinare se l’app è in esecuzione su Windows o OSX?

Dal wiki Mono (nella mia esperienza, OSX è identificato come Unix):

int p = (int) Environment.OSVersion.Platform; if ((p == 4) || (p == 128)) { Console.WriteLine ("Running on Unix"); } else { Console.WriteLine ("NOT running on Unix"); } 

O

 string msg1 = "This is a Windows operating system."; string msg2 = "This is a Unix operating system."; string msg3 = "ERROR: This platform identifier is invalid."; OperatingSystem os = Environment.OSVersion; PlatformID pid = os.Platform; switch (pid) { case PlatformID.Win32NT: case PlatformID.Win32S: case PlatformID.Win32Windows: case PlatformID.WinCE: Console.WriteLine(msg1); break; case PlatformID.Unix: Console.WriteLine(msg2); break; default: Console.WriteLine(msg3); break; }