Windows 10 RTM OSVersion 没有返回我所期望的

Windows 10 RTM OSVersion not returning what I expect

当调用 Windows 10 版本时:

Environment.OSVersion.ToString()

Return 这个

Windows 8 和 8.1 版本 return 6.2 不是 6.3 ?!

我正在使用 Windows 10 RTM(使用 windows 更新从 Insider 升级)VS 2015 RC 和 .Net 4.6

现在我需要获取 windows 的正确版本,有什么解决方案吗?

这不是错误,在 MSDN 中:

Operating System Version

Windows 10 Insider Preview    10.0*
Windows Server Technical Preview    10.0*
Windows 8.1 6.3*

*: For applications that have been manifested for Windows 8.1 or Windows 10 Insider Preview. Applications not manifested for Windows 8.1 or Windows 10 Insider Preview will return the Windows 8 OS version value (6.2). To manifest your applications for Windows 8.1 or Windows 10 Insider Preview, refer to Targeting your application for Windows.

你需要 Windows 版本做什么?

改为使用 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;
    }

Windows 10 有一个新的注册表项 - 您将从 Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "CurrentMajorVersionNumber", Nothing) 和(理论上)不是早期版本的

中得到 10 的结果。

根据秒表对象,这在 0 毫秒内运行,而 WMI 方法对我来说至少需要 30 毫秒。