Типичная ситуация: есть приложение, использующее .Net Framework, и есть юзер, желающий использовать программу, но не имеющий .Net Framework. Итог: программа не запускается и выдает непонятную ошибку. И начинается поиск решения, как же проверить, установлен ли .Net Framework на конечной машине и требуемая ли версия установлена. Есть несколько вариантов действий - проверить реестр или проверить файловую систему. В первом случае воспользуемся веткой реестра
HKEY_LOCAL_MACHINE\SOFTWARE\MicrosoftЕсли тут существует ветка
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setupто в ветке
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDPможно найти все установленные версии .Net.
Готовое решение этого варианта вы можете найти тут http://msdn.microsoft.com/en-us/library/ydh6b3yb.aspx
Во втором варианте просмотреть установленные версии можно %windir%\Microsoft.NET\Framework.
В любом случае, выполнить проверку из программы, написанной на .Net Framework, невозможно. Значит, надо писать утилиту на С++ или другом языке, не требующем .Net Framework. Решение, которое понравилось мне больше всего - это использование batch-файла. Например, мне нужно проверить, установлена ли версия 3.5 и , если нет, запустить установку. Вот что получается:
@ECHO OFF
SET FileName=%windir%\Microsoft.NET\Framework\v3.5
IF EXIST %FileName% GOTO Skip
ECHO.You currently do not have the Microsoft® .NET Framework 3.5 installed.
ECHO.This is required for MyApplication.
ECHO.
ECHO.The Microsoft® .NET Framework 3.5 will now be installed on you system.
ECHO.After completion setup will run MyApplication.
ECHO.
Pause
SET FileName=
Start /WAIT .\files\dotnetfx35.exe
ECHO ON
:Skip
Start .\MyApplication.exe
Exit
Заметьте, что данный скрипт не проверяет, установлен ли фреймворк. В любом случае, если не существует в файловой системе пути %windir%\Microsoft.NET\Framework\ будет устанавливаться .Net, а после окончания установки будет запущено приложение.
1 коммент.:
Рекомендую .NET Version Detector, самый удобный способ проверки.
http://net-framework.ru/soft/asoft-net-version-detector
Отправить комментарий