使用以下命令调用Windows 10版本时:
Environment.OSVersion.ToString()返回这个

Windows 8和8.1版本返回6.2而不是6.3 ?!
即时通信使用Windows10RTM(通过Windows更新从内部升级) VS 2015 RC和.Net 4.6.
现在我需要获取windows的正确版本,有什么解决方案吗?
发布于 2015-07-20 23:18:21
这不是一个bug,它在MSDN中:
Windows 10 Insider预览版10.0* Windows Server技术预览版10.0* Windows 8.1 6.3*
*:适用于Windows 8.1或Windows 10 Insider预览版的应用程序。Windows8.1或Windows10Insider预览版中未显示的应用程序将返回Windows8操作系统版本值(6.2)。要显示用于Windows8.1或Windows10Insider预览版的应用程序,请参阅Targeting your application for Windows。
不管怎样,你需要Windows版本做什么?
发布于 2016-01-08 18:46:46
请使用WMI查询,这是获取版本和相关产品名称的最可靠方法。
public static KeyValuePair<string, string> GetOSVersionAndCaption()
{
KeyValuePair<string, string> kvpOSSpecs = new KeyValuePair<string, string>();
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT Caption, Version FROM Win32_OperatingSystem");
try
{
foreach (var os in searcher.Get())
{
var version = os["Version"].ToString();
var productName = os["Caption"].ToString();
kvpOSSpecs = new KeyValuePair<string, string>(productName, version);
}
}
catch { }
return kvpOSSpecs;
}发布于 2016-01-25 23:22:48
Windows10有了一个新的注册表项--你将从Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "CurrentMajorVersionNumber", Nothing)得到10的结果,而(理论上)不是从早期版本得到的。
根据秒表对象,这在0毫秒内运行,而WMI方法对我来说至少需要30毫秒。
https://stackoverflow.com/questions/31520192
复制相似问题