-
Как мне программно узнать точную версию установленного на компьютере NET Framework?
Причем независимо от разрядности ОС (х32 или х64).
Если более конкретно, то мне необходимо определить, установлена ли у меня на компьютере версия NET Framework 3.5.
-
а необходимо ли?
возможно там уже стоит версия NET Framework 100500, обратно совместимая с 3.5
-
Да, необходимо. Если версия окажется ВЫШЕ, чем 3.5, то хорошо, но если НИЖЕ, тогда мне необходимо предпринимать некоторые действия. Вот для этого я ищу способ определения версии фреймворка, установленого на компе.
-
теперь смотри:
Если более конкретно, то мне необходимо определить, установлена ли у меня на компьютере версия NET Framework 3.5.
И ты определил, что 3.5 не установлена.
Какой вывод можно сделать?
Никакого.
-
Ну, если определил, что не установлена, тогда даю команду на скачивание этого пакета из инета. Что ж тут непонятного?
-
Нахрена?
Там же уже стоит версия 100500.
-
Ты не понял. Если я определяю, что у меня версия 3.5 и ВЫШЕ, или совместимая с ней, то ничего дополнительного делать не буду. Только если у меня версия НИЖЕ 3.5 или несовместимая с 3.5, тогда буду ставить 3.5.
-
Это ты не понял.
Ты задался конкретной целью.
Прознать про то, установлена ли конкретная версия фрэймворка.
Цель решается сегодня (код пишется сегодня).
А выполняться код будет завтра.
При выполнении твой код определит, что 3.5 не установлена.
Но там реально установлена более старшая версия, номера которой сегодня ты еще не знаешь.
Вывод: успешное достижение твоей цели не решает реальной проблемы.
Вывод второй: твоя цель была ложной.
-
> harisma (01.09.2011 11:00:00) [0]
Обычно на компьютере установлено примерно 6 разных NET Framework!
-
> harisma ©
Тебе как бы намекают, что вместо проверки наличия конкретной версии, лучше попытаться исполнить некий код, обращающийся к .Net, и проверить результат его выполнения.
И если код не отработал (например, выдал ошибку, чи еще как намекнул что ему что-то не хватает) - тогда уже и сообщать пользователю/качать дистрибутив.
-
> Обычно на компьютере установлено примерно 6 разных NET Framework!
Должно вымереть, как мамонты. Интересно, сколько еще упираться будут и сколько еще энтропии создадут?
> Тебе как бы намекают, что вместо проверки наличия конкретной
> версии, лучше попытаться исполнить некий код, обращающийся
> к .Net, и проверить результат его выполнения.
Я сам не в курсе. А в дотнете нету такой фишки, как в винде - вернуть номер версии?
-
А в дотнете нету такой фишки, как в винде - вернуть номер версии?
а если есть, то счастье?
приложение дотнетовское (требует 3.5) запускается и проверяет номер версии фреймворка.
а фреймвок 1.1 и дотнетовское приложение требующее 3.5 не запускается.....
-
> а фреймвок 1.1 и дотнетовское приложение требующее 3.5 не
> запускается.....
Ну - сказать что-то юзеру... Вообще - по-хорошему - то лучше вместе с инсталлятором дотнет нужный таскать.
-
> Я сам не в курсе. А в дотнете нету такой фишки, как в винде
> - вернуть номер версии?
Хотя если их 6 штук - то что возвращать :) Список разве что :)
-
> Дмитрий Белькевич (02.09.2011 00:28:13) [13]
Сегодня ты про NET Framework, завтра про что еще спросишь, а что будещь
делать если приложение просто не запустится.
Подход не верный, это должен делать инсталятор и системные требования.
-
-
Человек спрашивает как? а ему зачем:)
-
> возможно там уже стоит версия NET Framework 100500, обратно
> совместимая с 3.5
>
Хм, учитывая, что уже 4.0 обратнонесовместима с 3.5.
-
> приложение дотнетовское (требует 3.5) запускается и проверяет
> номер версии фреймворка.
> а фреймвок 1.1 и дотнетовское приложение требующее 3.5 не
> запускается.....
>
Кстати, программы написанные в VS в этом случае честно говорят какой им фреймворк требуется. Подозреваю, что и программы, писанные в Delphi Prism, так же скрывать этого не будут.