Принудительное удаление Installshield перед установкой

У меня есть установочный скрипт InstallShield 12. Я хочу удалить старую версию перед установкой новой версии. Я оставлю название пакета без изменений. Как я могу это сделать?


person Community    schedule 13.03.2009    source источник


Ответы (2)


Предполагая, что это не проект MSI и вы сохранили тот же GUID проекта, вы можете просто вызвать ComponentUninstall() в функции OnMaintUIBefore. Если GUID проекта не совпадает, вы можете посмотреть строку удаления в реестре под HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{PROJECT_GUID}, а затем выполнить с ней LaunchApp.

Надеюсь, поможет.

person Alonso    schedule 21.01.2010

В проекте на основе MSI это можно сделать, настроив основное обновление для вашего проекта. Обновления не существуют для проектов InstallScript, но нет никаких ограничений установщика Windows, чтобы вы не могли запускать несколько установок одновременно. Вы должны иметь возможность просто запустить удаление предыдущей версии вручную в своем коде InstallScript (возможно, в функции OnFirstUIBefore).

person Kevin Kibler    schedule 05.05.2009
comment
На самом деле, в настоящее время существуют ограничения на одновременный запуск нескольких установок. (Например, вы не можете запустить один установщик из другого.) Вот почему вам нужно создать загрузочное приложение, если вы хотите, чтобы ваш установщик установил все необходимые компоненты, необходимые вашему .MSI. Я точно не знаю, в какой версии установщика Windows реализованы эти ограничения (2.0?), но это где-то задокументировано. - person RobH; 05.05.2009
comment
Я думал, что первоначальный вопрос касался установки InstallScipt, а не установки MSI. Установка только с помощью InstallScript не имеет ограничений установщика Windows, поскольку они не используют MSI, поэтому вы можете запускать несколько из них одновременно. Вот почему установку InstallScript можно использовать в качестве загрузчика для других установок (включая установки MSI). - person Kevin Kibler; 08.05.2009