У меня есть InstallShield 12 installscript. Я хочу удалить старую версию перед установкой новой версии. Я сохраню имя пакета без изменений. Как я могу это сделать?Forcing Installshield для удаления перед установкой
ответ
С проектом на основе MSI это будет выполнено путем настройки основного обновления для вашего проекта. Обновления не существуют для проектов InstallScript, но ограничений на установку Windows не существует, чтобы вы не могли одновременно запускать несколько установок. Вы можете просто запустить удаление предыдущей версии вручную в коде InstallScript (возможно, в функции OnFirstUIBefore).
Предполагая, что это не проект MSI, и вы сохранили тот же GUID проекта, вы можете просто вызвать ComponentUninstall()
в функции OnMaintUIBefore
. Если идентификатор проекта не совпадает, вы можете посмотреть строку удаления в реестре под номером HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{PROJECT_GUID}
, а затем с этим сделать LaunchApp.
Надеюсь, это поможет.
На самом деле, существуют ограничения на одновременное выполнение нескольких установок. (Например, вы не можете запустить один установщик из другого.) Вот почему вам нужно сделать приложение для загрузки, если вы хотите, чтобы ваш установщик установил все необходимые условия, необходимые вашему .MSI. Я точно не знаю, какая версия установщика Windows реализовала эти ограничения (2.0?), Но где-то она где-то документирована. – RobH
Я думал, что исходный вопрос касался установок InstallScipt, а не установок MSI. Установка InstallScript не имеет ограничений для Windows Installer, поскольку они не используют MSI, поэтому вы можете запускать несколько из них одновременно. Вот почему установка InstallScript может использоваться как «загрузочный» для других установок (включая установки MSI). –