Завершение программы при запуске установщика, созданного с помощью InstallShield

Когда запускается InstallShield, мы запускаем отдельный установщик (до этапа установки), который устанавливает небольшой SQL-сервер, который имеет решающее значение для программы. К вашему сведению, SQL-сервер - это Firebird SQL. Когда пользователи переустанавливают программу, нам нужно завершить работу сервера Firebird SQL, который просто работает как фоновый исполняемый файл. Мы изучили последствия принудительного завершения exe и не испытали никаких негативных эффектов.

Итак, мой вопрос: как определить в InstallShield, запущена ли внешняя программа, и завершить ее, если это так? Единственная причина, по которой я хотел бы определить, работает ли он, - это избежать ошибок, которые могут помешать или вызвать ошибку во время установки. Если это не проблема, мне наплевать, если мы определим, работает он или нет.

РЕДАКТИРОВАТЬ: На самом деле мы хотим убить exe только потому, что мы его переустанавливаем. Итак, если это возможно, есть ли способ указать InstallShield пропустить выполнение исполняемого файла, если запущен другой исполняемый файл?


person Cyprus106    schedule 20.09.2011    source источник


Ответы (2)


Установите Firebird как службу, а затем используйте таблицу ServiceControl, чтобы остановить службу. Я не могу себе представить ничего хорошего из завершения работы механизма SQL-сервера.

Если вы действительно хотите убить его (надеюсь, вы затем копируете в новый файл данных, чтобы повреждение не было проблемой), взгляните на образец «Список и завершение работы запущенных приложений» по адресу http://www..installsite.org/pages/en/isp_ext.htm

person Christopher Painter    schedule 20.09.2011

Есть 2 подхода к решению этой проблемы:

  1. Пропуск второго продукта (вашего SQL-сервера), если он работает. Для этого вы можете использовать настраиваемое действие, которое обнаруживает запущенный процесс и устанавливает свойство установщика на основе результата. Затем это свойство можно использовать для кондиционирования второго установщика.

  2. Второй подход - полностью удалить, а затем переустановить второй продукт после выполнения ремонта:

    • add a custom action which uninstalls the second product
    • подготовьте его для запуска только для восстановления (используйте ПЕРЕУСТАНОВИТЬ свойство)
    • запланировать его перед настраиваемым действием, которое устанавливает продукт во время первой установки
    • измените условие настраиваемого действия установки, чтобы оно также поддерживало восстановление, например:

НЕ УСТАНОВЛЕН ИЛИ ПЕРЕУСТАНОВИТЬ

person cosmin    schedule 21.09.2011