從 .NET 開始,C# 是跨平台的,那要如何確定程式是執行在哪個作業系統上呢?
直接看程式碼:
註: 筆者測試時執行的作業系統為 Windows 11 專業版 22H2
那能不能看到作業系統資訊?
可以是可以,只是沒有那麼準確,並且在 .NET 5 以前的版本中會更加的不準確,詳細資訊可以參考下面的連結
參考資料:
Environment.OSVersion returns the correct operating system version
Environment.OSVersion Property
直接看程式碼:
using System.Runtime.InteropServices;
Console.WriteLine(RuntimeInformation.IsOSPlatform(OSPlatform.FreeBSD)); // False
Console.WriteLine(RuntimeInformation.IsOSPlatform(OSPlatform.Linux)); // False
Console.WriteLine(RuntimeInformation.IsOSPlatform(OSPlatform.OSX)); // False
Console.WriteLine(RuntimeInformation.IsOSPlatform(OSPlatform.Windows)); // True
註: 筆者測試時執行的作業系統為 Windows 11 專業版 22H2
那能不能看到作業系統資訊?
Console.WriteLine(Environment.OSVersion.Platform); // Win32NT
Console.WriteLine(Environment.OSVersion.VersionString); // Microsoft Windows NT 10.0.22621.0
Console.WriteLine(Environment.OSVersion); // Microsoft Windows NT 10.0.22621.0
// 64 位元
Console.WriteLine(Environment.Is64BitOperatingSystem); // True
Console.WriteLine(Environment.Is64BitProcess); // True
可以是可以,只是沒有那麼準確,並且在 .NET 5 以前的版本中會更加的不準確,詳細資訊可以參考下面的連結
參考資料:
Environment.OSVersion returns the correct operating system version
Environment.OSVersion Property
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com