gpt4 book ai didi

c# - 我怎样才能在 C# 中获得真正的操作系统版本?

转载 作者:太空狗 更新时间:2023-10-29 20:09:45 29 4
gpt4 key购买 nike

自 .NET 4 和 Windows 8 或更高平台以来,获取运行程序的操作系统版本非常不确定。

例如,在 Windows 10 中运行,如果我的项目有一个 Windows 8 DLL,则 Environment.OSVersion.Version 返回 6.2.9200.0,这是 Windows 8 并且不是 Windows 10。

此问题(crono 的回答)中解释了此行为:Windows version in c#

所以我的问题如下:我们如何才能确定(并保持 .NET 方式以便能够在非 Windows 平台上使用它)我们的应用程序运行的操作系统版本?

MSDN 链接:

https://msdn.microsoft.com/en-us/library/system.environment.osversion(v=vs.110).aspx

最佳答案

如果使用 Windows 以外的其他平台不是问题,您可以使用 Win32_OperatingSystem WMI 类。

Win32_OperatingSystem represents a Windows-based operating system installed on a computer

//using System.Linq;
//using System.Management;
var query = "SELECT * FROM Win32_OperatingSystem";
var searcher = new ManagementObjectSearcher(query);
var info = searcher.Get().Cast<ManagementObject>().FirstOrDefault();
var caption = info.Properties["Caption"].Value.ToString();
var version = info.Properties["Version"].Value.ToString();
var spMajorVersion = info.Properties["ServicePackMajorVersion"].Value.ToString();
var spMinorVersion = info.Properties["ServicePackMinorVersion"].Value.ToString();

记得添加对 System.Management.dll 的引用。

注意:

关于c# - 我怎样才能在 C# 中获得真正的操作系统版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32415679/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com