Я создаю настольное приложение .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?