如何确定我的单声道应用程序在 Mac 环境中是否为 运行?
How to determine if my mono application is run in a Mac environment?
我正在构建一个 .Net 桌面应用程序 (C#),以便在不同平台上使用单声道执行。但是代码的某些部分仅在特定的 OS 中需要 运行。
我用这个来判断OS:
"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?
在 System.Runtime.InteropServices
中有 RuntimeInformation
class:
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
// macOS
}
我正在构建一个 .Net 桌面应用程序 (C#),以便在不同平台上使用单声道执行。但是代码的某些部分仅在特定的 OS 中需要 运行。
我用这个来判断OS:
"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?
在 System.Runtime.InteropServices
中有 RuntimeInformation
class:
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
// macOS
}