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?
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.
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?
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;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With