我正在构建.Net桌面应用程序(C#),以便在不同平台上使用mono执行。但是代码的某些部分仅需要在特定的操作系统中运行。
我用它来确定操作系统:
“ 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?
答案 0 :(得分:0)
在System.Runtime.InteropServices
中有RuntimeInformation
类:
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
// macOS
}