Пропустить установку определенных действий на основе условий
Я совершенно новичок в установщике Windows, поэтому, пожалуйста, будьте осторожны!
Я хочу, чтобы некоторые драйверы были установлены, когда мои клиенты устанавливают мою программу. Однако, если драйверы уже установлены, я хочу, чтобы программа установки пропустила этот определенный шаг и продолжила установку моей программы.
Я попытался добавить условие запуска установщика Windows, в котором выполняется поиск определенного идентификатора компонента. Когда я пытаюсь установить, появляется сообщение об ошибке, и программа установки завершает работу - ничего не устанавливается. Неважно, установлен драйвер или нет - я получаю тот же результат.
Есть какие-нибудь подсказки?
Заранее спасибо!
1 ответ
Условие запуска останавливает установку, если условие не выполняется. Это не решение для того, что вам нужно.
Вы можете попытаться определить, установлен ли драйвер, с помощью поиска: http://msdn.microsoft.com/en-us/library/aa367579(VS.85).aspx
Вы также можете использовать немедленное настраиваемое действие, которое выполняет этот поиск и устанавливает свойство установщика на основе результатов поиска. Это настраиваемое действие требует написанного вами кода. Это может быть Win32 DLL:
http://msdn.microsoft.com/en-us/library/aa368338(VS.85).aspx
http://msdn.microsoft.com/en-us/library/aa367457(VS.85).aspx
http://www.advancedinstaller.com/user-guide/serial-number-validation-dll.html (пример C++ DLL)
или VBScript: http://msdn.microsoft.com/en-us/library/sx7b3k7y(VS.85).aspx
Таким образом, вы можете использовать пользовательское свойство, чтобы обуславливать свои действия. Например, если свойство пустое, драйвер должен быть установлен. Таким образом, ваше пользовательское действие может использовать условие:
NOT MY_CUSTOM_PROPERTY
где "MY_CUSTOM_PROPERTY" - это свойство, которое вы устанавливаете на основе поиска.