21

C# プログラムが実行されているプラ​​ットフォーム (Windows / Linux / Mac) を正しく検出するのに本当に効率的なものは見つかりませんでした。

そこで、Mac の特性に基づいて、理論的ではなく、より実用的なものを作成しました。

作業コードを回答として投稿しています。それがあなたにとってもうまくいくか/改善できるかどうかコメントしてください.

ありがとう !

応答 :

これが作業コードです!

    public enum Platform
    {
        Windows,
        Linux,
        Mac
    }

    public static Platform RunningPlatform()
    {
        switch (Environment.OSVersion.Platform)
        {
            case PlatformID.Unix:
                // Well, there are chances MacOSX is reported as Unix instead of MacOSX.
                // Instead of platform check, we'll do a feature checks (Mac specific root folders)
                if (Directory.Exists("/Applications")
                    & Directory.Exists("/System")
                    & Directory.Exists("/Users")
                    & Directory.Exists("/Volumes"))
                    return Platform.Mac;
                else
                    return Platform.Linux;

            case PlatformID.MacOSX:
                return Platform.Mac;

            default:
                return Platform.Windows;
        }
    }
4

2 に答える 2

8

たぶん、PintaソースのIsRunningOnMacメソッドをチェックしてください。

于 2012-04-13T11:50:56.523 に答える