首页 > 解决方案 > 如何确定我的单声道应用程序是否在 Mac 环境中运行?

问题描述

我正在构建一个 .Net 桌面应用程序 (C#),以便在不同平台上使用单声道执行。但是代码的某些部分只需要在特定的操作系统中运行。

我用它来确定操作系统:

“环境.OSVersion.平台”

//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?

标签: macosmono

解决方案


System.Runtime.InteropServices里面有课RuntimeInformation

if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
    // macOS
}

推荐阅读