Ответ 1
<!-- This Id value indicates the application supports Windows Threshold functionality-->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
Мы обнаруживаем версию ОС для статистики. Начиная с Windows 8.1, ОС "лежит" о своей версии при использовании GetVersion
. Однако System.Environment.OSVersion
по-прежнему вызывает этот API с .NET 4.5.1. Таким образом, мы добавили 8.1 GUID в манифест, который отлично работает.
Теперь я хотел бы подготовить то же самое для Windows 10. Является ли GUID для этого еще известного?
(править) P/Invocation VerSetConditionMask и VerifyVersionInfo для проверки на 6.4 или больше, похоже, работают.
<!-- This Id value indicates the application supports Windows Threshold functionality-->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
Другие GUID для других контекстов ОС:
| OS | GetVersionEx | supportedOS Id |
|-----------------|--------------|------------------------------------------------------------|
| Windows 10 | 10.0* | <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> |
| Windows 8.1 | 6.3 | <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> |
| Windows 8 | 6.2 | <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> |
| Windows 7 | 6.1 | <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> |
| Windows Vista | 6.0 | <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> |
| Windows XP | 5.1 | n/a |
| Windows 2000 | 5.0 | n/a |
| Windows NT 4 | 4.0 | n/a |
| Windows NT 3.51 | 3.51 | n/a |
| Windows NT 3.1 | 3.1 | n/a |
* было 6.4 до сборки 9926. После сборки 9926 он сообщает 10.0
Страница, на которой хранится документация для этих значений:
При работе в Windows 10
| OS Context | GetVersionEx |
|---------------|--------------|
| Windows Vista | 6.2 |
| Windows 7 | 6.2 |
| Windows 8 | 6.2 |
| Windows 8.1 | 6.3 |
| Windows 10 | 10.0 |