Noe Nieto

Mi sitio personal | Personal site

Detectar el Sistema Operativo en Mono/C#

Tutorial para detectar el sistema operativo desde una aplicación C# compilada con Mono, usando Environment.OSVersion.Platform y ejecutando tanto en Linux como en Windows.

Chango

Me basé en esta solución.

Mi programita queda así:

using System;

namespace UnixApp
{
    class MainClass
    {
        private static bool IsUnix () {
            return Environment.OSVersion.Platform == PlatformID.Unix;
        }

        public static void Main (string[] args)
        {
            Console.WriteLine("{0}", IsUnix()? "Unix": "Windoge");
        }
    }
}

Lo guardé en una carpeta compartida entre Fedora (anfitrión) y Windows 8.1 (en una VM de VirtualBox) con el nombre de detecta.cs. Posteriormente lo compilé con Mono:

mcs detecta.cs

El programa se compiló sin ningún error. Posteriormente lo ejecuté en Linux y en Windows. Acá la foto de cómo queda en Fedora:

Mono en Fedora 20

Y acá abajo pongo la fotito de cómo queda en Windows 8.1.

Exe compilado con Mono y corriendo en Windows


La imagen del chango es de https://flic.kr/p/diScsq