C#でOSのバージョンやフレームワークの情報を取得する【Mono|.NET Framework】

絵本水や空 コンピュータ
出典:国立国会図書館「NDLイメージバンク」 (https://rnavi.ndl.go.jp/imagebank/)

Mono環境でOSのバージョン情報を取得することが出来るか気になったので試してみます。

ソース

using System;
using System.Reflection;
using System.Runtime.InteropServices;
/*
コンパイル
mcs OSVer.cs -out:OSVer.exe
*/
class Prog
{
    static void Main()
    {
        var os = System.Environment.OSVersion;
        Console.WriteLine("Version:{0}", os.VersionString);
        Console.WriteLine("MajorVer:{0}", os.Version.Major);
        Console.WriteLine("PlatformID:{0}", os.Platform);
        Console.WriteLine("ServicePack:{0}", os.ServicePack);

        Console.WriteLine("Framework:{0}", RuntimeInformation.FrameworkDescription);
        Console.WriteLine("OSArchitecture:{0}", RuntimeInformation.OSArchitecture);
        Console.WriteLine("OSDescription:{0}", RuntimeInformation.OSDescription);
        Console.WriteLine("ProcessArchitecture:{0}", RuntimeInformation.ProcessArchitecture);
    }
}//class

Ubuntu20.04で実行

Version:Unix 5.15.0.41
MajorVer:5
PlatformID:Unix
ServicePack:
Framework:Mono 6.12.0.182 (tarball Tue Jun 14 22:35:00 UTC 2022)
OSArchitecture:X64
OSDescription:Unix 5.15.0.41
ProcessArchitecture:X64

Windows11で実行

Version:Microsoft Windows NT 6.2.9200.0
MajorVer:6
PlatformID:Win32NT
ServicePack:
Framework:.NET Framework 4.8.9032.0
OSArchitecture:X64
OSDescription:Microsoft Windows 10.0.22622
ProcessArchitecture:X64

コメント