Почему Windows 10 возвращает номер версии 6.3?

8024
Dog Lover

В Windows 10, код VB.NET Environment.OS.VersionStringвыходов Microsoft Windows NT 6.3.9600.0. Согласно документации Microsoft, номер версии Windows 10 таков 10.0, так почему же VB.NET распознает Windows 10 как Windows 8.1?

Я сделал systeminfo | findstr /C:"OS"в командной строке, и он вернул правильное значение в 10.0.10240 N/A Build 10240разделе «Версия ОС».

8
Потому что он подхватывает тот факт, что вы обновились с Windows 8.1. Метод, который вы используете, смотрит на реестр. Это работает как задумано. Существует более подходящая функция, чем использование переменной среды для определения используемой операционной системы. * Я не могу предоставить код, так как это не Stackoverflow * Ramhound 8 лет назад 1
Кто-то испытал ту же проблему в комментариях здесь: https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832%28v=vs.85%29.aspx Вам необходимо обновить манифест для своего приложения , MC10 8 лет назад 1
** Вы также используете это неправильно. ** Это должно быть закончено в Stackoverflow, так как это проблема кодирования, и, хотя я подозреваю, что использование переменной окружения все еще является неправильным способом, файл манифеста, очевидно, неверен. Ramhound 8 лет назад 0
@ Ramhound Да, я думал, что это могло быть так. Я знаю, что после месяца обновления до Windows 10 Windows 8.1 удаляется - значит ли это, что номер версии будет правильным? Dog Lover 8 лет назад 0
Номер версии правильный. Как я уже сказал, он использует ваш метод чтения реестра, который не был обновлен и не будет обновлен, если бы не было чистой установки Windows 10. Выполните эту задачу по-другому, другими словами, не используйте переменная среды. Ramhound 8 лет назад 0
@Ramhound: это определенно не правильно. После обновления до Windows 10 у вас должна быть Windows 10, а не Windows 8.1 ... Ну, хорошо, пока теория ... Quandary 8 лет назад 0
@Quandary - За исключением того, что функция, которая использовалась, работала как задумано. Ramhound 8 лет назад 0

4 ответа на вопрос

3
RookieTEC9

Because it is picking up the fact you upgraded from Windows 8.1. The method you are using is looking at the registry. It is working as intended. There is a more appropriate function then using the environment variable to determine what operating system is being used. I can't provide code since this isn't Stackoverflow

– Ramhound Aug 26 at 1:12

That's the answer in a nutshell. During the upgrade, the registry doesn't change the build number from the old to the new one. It just sticks.

Другими словами, обновление не работает должным образом ... Ну, ничего нового на западе;) Quandary 8 лет назад 2
0
egray

So, to get back to the root question... I use Windows Management Instrumentation (WMI) to generate the Windows version number in the manner in which you are expecting. For example, it reports 10.0.10586

Here is a short code snippet

Public Class OS ' Use Windows Management Instrumentation (WMI) to get the OS version Public Shared Function GetOSVersion() As String Dim answer As String = "" ' add Imports System.Management and add a resource to System.Management Dim osClass As New ManagementClass("Win32_OperatingSystem") For Each queryObj As ManagementObject In osClass.GetInstances() answer = DirectCast(queryObj.GetPropertyValue("Version"), String) Next Return answer End Function End Class 
-1
user319563

6.3 is the internal version of Windows, which reveals that since Windows 7, there have not been any major releases, contrary to what Microsoft wants you to believe. The names Windows 7, 8, 10, etc. are just marketing names. They decided to skip 9 to match Mac OS X. But the real version number is 6.3

Существует много разных причин, по которым они пропустили v9 (особенно интересная причина - многие устаревшие приложения увидят 9 и ошибочно считают, что ОС была Windows 95/98), но я не думаю, что они когда-либо подтверждали или опровергали это. ). Тем не менее, попробуйте воздержаться от случайных спекуляций в ваших ответах - источники лучше :) Mikey T.K. 8 лет назад 1
-1
Theo Vroom

Я установил Windows 10 (юбилейный выпуск 1607) с нуля, и запись реестра currentversion также сообщает 6.3, но, например, 'ver' сообщает 10.0.14393

Кстати 1) Я читал, что предварительный просмотр Windows 10 был 6,4

Кстати 2) Я установил Windows 10 в качестве виртуальной машины Hyper-V на Windows Server 2012 R2, но я не думаю, что это как-то связано с этим.

«Я прочитал, что предварительный просмотр Windows 10 был 6,4» - Вы прочитали неправильно. Это комментарий, он не отвечает на вопрос автора, если вы хотите оставить комментарий, заработайте для этого необходимый балл репутации. Ramhound 7 лет назад 0