Как определить, запущено ли мое моно приложение в среде Mac? - PullRequest
1 голос
/ 07 июня 2019

Я создаю настольное приложение .Net (C #), которое будет выполняться с использованием моно на разных платформах. Но есть определенные части кода, которые должны запускаться только в определенных ОС.

Я использую это для определения ОС:

"Environment.OSVersion.Platform"

//Reproducible demo code.
using System;

public class Program
{
    public static void Main()
    {
        Console.WriteLine(Environment.OSVersion); 
        Console.WriteLine(Environment.MachineName); 
        Console.WriteLine(Environment.OSVersion.Platform);

    }
}

Платформа преобразуется в

Windows : Win32NT

Ubuntu : Unix

Mac : Unix

Проблема в конфликте с Linux и Mac. Подобная команда в Java "os.name" фактически дает мне имя macOS, в то время как mono, кажется, не делает различий между Linux и Mac, по крайней мере с этими командами.

Как мне определить, что среда выполнения - macOS?

1 Ответ

0 голосов
/ 07 июня 2019

В System.Runtime.InteropServices есть класс RuntimeInformation:

if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
    // macOS
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...