Windows 10 RTM OSVersion not returning what I expect

落爺英雄遲暮 提交于 2019-12-06 19:31:20

问题


When call Windows 10 version with:

Environment.OSVersion.ToString()

Return this

Windows 8 and 8.1 version return 6.2 not 6.3 ?!

Im using Windows 10 RTM (upgrade from Insider with windows update) VS 2015 RC and .Net 4.6

Now i need to get the correct version of windows, any solution?


回答1:


It's not a bug, it's in 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.

What do you need the Windows version for anyway?




回答2:


Use WMI query instead, it is the most reliable way to get the version and related product name.

        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;
    }



回答3:


Windows 10 has a new registry key - you will get a result of 10 from Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "CurrentMajorVersionNumber", Nothing) and (in theory) not from earlier versions.

This runs in 0 milliseconds according to the stopwatch object, whereas the WMI method takes at least 30 ms for me.



来源:https://stackoverflow.com/questions/31520192/windows-10-rtm-osversion-not-returning-what-i-expect

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!