Всем привет. Работаю с Visual Studio 2012 и на Windows 10.
Написал программу которая выводит версию Windows System.Environment.OSVersion.Version. Но при запуске выдает, что я работаю на Windows 8. Порылся по гуглу и понял, что нужно добавить в манифест строчку кода <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>, добавил, результат тот же, мне отображает, что я работаю с Windows 8.
Собрал все в msi файл и попробовал запустить на другом компьютере с Windows 10 где нет Visual Studio, а вдруг, но эффект был тот же, Windows 8.
Что я делаю не так? Спасибо
Прописывание секции compatibility — правильный путь. Согласно документации, Environment.OSVersion возвращает версию согласно WinAPI-функции GetVersionEx. Эта функция, в свою очередь, возвращает версию 8.0, если не установлен нужный манифест:
Applications not manifested for Windows 8.1 or Windows 10 will return the Windows 8 OS version value (6.2). Once an application is manifested for a given operating system version, GetVersionEx will always return the version that the application is manifested for in future releases.
Это значит, что вы сделали всё правильно, и где-то у Visual Studio осталась закешированной старая версия исполняемого файла или манифеста. Выглядит как мелкий баг Visual Studio.
Перестройте программу по новой, перезапустите Visual Studio, проблема должна исчезнуть.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости