使用以下命令调用Windows 10版本时
Environment.OSVersion.ToString()
返回此
Windows 8和8.1版本返回6.2而不是6.3?
我正在使用Windows 10 RTM(从Insider升级到Windows更新)VS 2015 RC和.Net 4.6
现在我需要获得正确版本的Windows,任何解决方案?
答案 0 :(得分:14)
它不是一个错误,它在MSDN中:
Windows 10 Insider Preview 10.0* Windows Server Technical Preview 10.0* Windows 8.1 6.3*
*:适用于已针对Windows 8.1或Windows 10 Insider Preview显示的应用程序。 未在Windows 8.1或Windows 10 Insider Preview中显示的应用程序将返回Windows 8操作系统版本值(6.2)。要显示Windows 8.1或Windows 10 Insider Preview的应用程序,请参阅Targeting your application for Windows。
无论如何,你需要什么样的Windows版本?
答案 1 :(得分:14)
使用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;
}
答案 2 :(得分:1)
Windows 10有一个新的注册表项 - 您将从addFilterAfter(Filter filter, Class<? extends Filter> afterFilter)
获得HttpSecurity
的结果,并且(理论上)不会从早期版本获得结果。
根据秒表对象,它在0毫秒内运行,而WMI方法对我来说至少需要30毫秒。