Страницы

Поиск по вопросам

понедельник, 30 декабря 2019 г.

Проверка версии платформы .NET Framework

#c_sharp #net


Необходимо чтобы при запуске программы (обязательно C#) происходила проверки наличия
установленного .NET Framework 3.5 и выше.
Пока есть два варианта решения проблемы:
1. Открывать программу .NET Framework 2.0 и если проходит проверка, то запускать
на версии выше. 
2. Писать в другой среде, которая может проверить наличие .NET Framework как такового
и после чего уже запускать программу.
Хотелось бы услышать ваши мнения.
По первому пункту я не могу найти как поменять запускаемую платформу и как потом
перейти на другую программу.
По второму - на чём писать и, опять таки, как запустить программу написанную в C#.    


Ответы

Ответ 1



Не-не, так не катит. Программа должна не просто запускаться, а инсталлироваться на клиентской машине. Инсталляция включает установку всех необходимых redistributables, включая и нужную версию .NET. Это значит, что если ваш target — платформа младше Windows 7 (на которой .NET 3.5 ставится автоматически), вам нужно таскать с собой либо полный redistributable, либо web-инсталлятор. В любом случае, проверка и инсталляция необходимых библиотек — это проблема не программы, а её инсталлятора.

Ответ 2



Помимо ответа @VladD, с которым я полностью согласен, в голову приходит ещё пару вариантов: Вместе с программой поставляйте .config-файл с указанием необходимой платформы (подробнее можно почитать здесь), пример содержания конфигурационного файла: В теории, при отсутствии нужной версии платформы, должно будет появиться окно с запросом на установку нужной версии framework'а. Сделать небольшое вспомогательное приложение - bootstrapper (собранное под второй framework, если оно на .net, или простое нативное приложение на любом языке), которое при запуске проверит версию Framework'а (лучше всего по реестру), и если всё плохо, то сообщит об этом, а если всё хорошо - запустит основное приложение.

Комментариев нет:

Отправить комментарий