System.Environment.OSVersion возвращает неверную версию

Использование окон 10, обновленных из окон 8 = > 8.1 = > 10 Когда я использую этот код.

OperatingSystem os = System.Environment.OSVersion;

. os.Version = {6.2.9200.0} System.Version

Я читал, что это было из-за версии проявлено для, но я не понимаю, что это значит.

Я хочу правильную версию ОС, потому что я регистрирую строку пользовательского агента в веб-службе и хочу правильно определить версию Windows для поддержки. какой самый простой способ получить правильное сообщение о правильной версии?

Ответ 1

Windows 10 возвращает эту строку, если вы не заявляете, что ваше приложение совместимо с манифестом. Для этого добавьте app.manifest (щелкните правой кнопкой мыши ваш проект → Добавить → Новый элемент → Файл манифеста приложения), затем раскомментируйте следующую строку:

<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />

Вы можете сделать то же самое для Windows Vista до Windows 10. Все находятся в одном разделе:

<application>
  <!-- A list of the Windows versions that this application has been tested on and is
       is designed to work with. Uncomment the appropriate elements and Windows will 
       automatically selected the most compatible environment. -->

  <!-- Windows Vista -->
  <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->

  <!-- Windows 7 -->
  <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->

  <!-- Windows 8 -->
  <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->

  <!-- Windows 8.1 -->
  <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->

  <!-- Windows 10 -->
  <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />

</application>

И теперь, когда вы запустите приложение, оно сообщит правильную версию 10.0. *. 0