Проверка наличия установленных приложений делается для предотвращения повторной установки, для экономии времени, а так же для контроля за результатом инсталляции приложения.
Проверка через реестр с помощью GUID:
Для включения проверки, нужно указать правильные GUID и версию, в таком виде, в котором она прописывается в реестре, а не так, как автоматом определилась при добавлении приложения.
Определить без ошибочно можно с помощью Check Device
Можно указывать два GUID разделив их знаком ";" (Больше двух GUID указывать нельзя)
Например когда приложение двух разрядное, и у каждой разрядности свой GUID.
Версию можно сократить, отбрасывая цифры после точки. Например если в реестре версия 3.4.0.30460 в MInstAll можно указать 3.4.0 или 3.4 или даже 3.
Если установлена такая же или более новая версия, приложение помечается зеленой галочкой.
Если установлена более старая версия, приложение помечается желтым восклицательным знаком.
Если в реестре нестандартная версия с буквами, словами и другой ерундой, в MInstAll указываем точно так же (без сокращений).
В операционных системах, где
.NET Framework является частью системы его нет в списке установленных программ, поэтому в программе есть встроенный механизм проверки.
Для проверки .NET Framework указываем в поле GUID спец. код:
NF3.5SP1 - для проверки наличия Microsoft .NET Framework 3.5 SP1
NF4.5C - для проверки наличия Microsoft .NET Framework 4.5 Client
NF4.5F - для проверки наличия Microsoft .NET Framework 4.5 Full
NF4.6C - для проверки наличия Microsoft .NET Framework 4.6 Client
Проверка по наличию файла:
Если по GUID проверять не представляется возможным, можно проверять по наличию файла, при этом версия не учитывается.
Для включения проверки, в поле GUID указываем путь к файлу, для универсальности используем переменные, например:
если приложение 32-битное:
Код:
%ProgramFiles%\Microsoft Office\Office14\WINWORD.EXE
если приложение 64-битное:
Код:
%SystemDrive%\Program Files\Microsoft Office\Office14\WINWORD.EXE
Второй вариант, для тех случаев, когда приложение ставится в зависимости от разрядности ОС, на x64 ставится 64-битная версия, а на x86 ставится 32-битная версия.