InnoSetup: проверить самую старую версию приложения и показать информационное сообщение - PullRequest
0 голосов
/ 17 мая 2010

Как проверить, что самая старая версия приложения была установлена ​​в процессе установки новой версии? Что я имею в виду? Я хочу перед началом установки запустить процесс проверки с помощью диалогового окна «Пожалуйста, подождите», если моя установка обнаружила старую версию, я могу предоставить диалоговое окно «обновить или удалить старую и установить новую». Как мне это сделать? Спасибо.

1 Ответ

3 голосов
/ 17 мая 2010

Я не уверен, что это вообще можно сделать, так как запуск InnoSetup-setup всегда предполагает, что вы хотите установить новую или обновить существующую установку. Я не думаю, что вы можете переключить установку из «режима установки» в «режим удаления» по выбору пользователя, как вы этого хотите.

В этот момент InnoSetup работает иначе, чем установщик Windows. Он имеет отдельный установщик и деинсталлятор, в отличие от установщика Windows, который «содержит оба».

Если вам нужна эта функция, вы можете обратиться к Установщик Windows XML (WiX), который создает настройки MSI и может выполнять именно то, что вы ищете.

EDIT
Прежде всего, спасибо за понижение. Я не совсем понимаю, почему кто-то отверг бы вполне разумный ответ, но, думаю, мне придется с этим справиться.

Чтобы ответить на ваш комментарий о BeforeInstall: Если вы прочитаете документацию, вы заметите, что BeforeInstall вызывается до того, как элемент установлен . Цитата из документов:

Имя функции, которую нужно вызвать один раз перед установкой записи

Что вы хотите сделать сводится к:

  1. Решите, сможет ли пользователь выбрать, будет ли он устанавливать или удалять при запуске установки
  2. установка или удаление в зависимости от выбора пользователя

Я пытаюсь сказать, что, насколько я знаю, вы не можете переключиться из режима установки (запускается setup.exe) в режим удаления (запускается uninstall.exe) из сценария установки.

InnoSetup предполагает, что запуск Setup.exe эквивалентен желанию установки или обновления. Если бы пользователь хотел удалить, он бы запустил деинсталлятор, а не установку.

...