【.NET/C#】OSを判定する
2024-7-25 | .NET
.NETでプログラムが動いてるOSを判定したい!
概要
今回の記事では、.NETでプログラムが動いてるOSを判定する手順を掲載する。
.NETはWindows以外のOS、UbuntuとかMacOSなどでも実行できるんだけども、動いてるOSによって処理を変えたい場合があってそんな時にOSを判定できると良い感じ。
仕様書
環境
- NET 8.0
手順書
OSの情報を文字列として出力しつつ、定数でOSを判定する例。
using System.Runtime.InteropServices;
namespace tests
{
internal class Program
{
static void GetOSInfo()
{
Console.WriteLine(RuntimeInformation.OSDescription);
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
Console.WriteLine("Windows");
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
Console.WriteLine("Linux");
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
Console.WriteLine("OSX");
}
}
static void Main(string[] args)
{
GetOSInfo();
}
}
}
プログラムを実行すると私の環境では下記のような感じでターミナルに出力される。
Microsoft Windows 10.0.22631
Windows
フィールドRuntimeInformation.OSDescription
からOSの情報を文字列で取得できる。
メソッドRuntimeInformation.IsOSPlatform
の引数に列挙型OSPlatform
を渡してOSを判定できる。
まとめ(感想文)
なんやかんやWindowsとUbuntuで処理を変えたくなるケースがよくあるのでそんな時に使えるかもね!