Я не уверен, что это вообще можно сделать, так как запуск InnoSetup-setup всегда предполагает, что вы хотите установить новую или обновить существующую установку. Я не думаю, что вы можете переключить установку из «режима установки» в «режим удаления» по выбору пользователя, как вы этого хотите.
В этот момент InnoSetup работает иначе, чем установщик Windows. Он имеет отдельный установщик и деинсталлятор, в отличие от установщика Windows, который «содержит оба».
Если вам нужна эта функция, вы можете обратиться к Установщик Windows XML (WiX), который создает настройки MSI и может выполнять именно то, что вы ищете.
EDIT
Прежде всего, спасибо за понижение. Я не совсем понимаю, почему кто-то отверг бы вполне разумный ответ, но, думаю, мне придется с этим справиться.
Чтобы ответить на ваш комментарий о BeforeInstall
: Если вы прочитаете документацию, вы заметите, что BeforeInstall
вызывается до того, как элемент установлен . Цитата из документов:
Имя функции, которую нужно вызвать один раз перед установкой записи
Что вы хотите сделать сводится к:
- Решите, сможет ли пользователь выбрать, будет ли он устанавливать или удалять при запуске установки
- установка или удаление в зависимости от выбора пользователя
Я пытаюсь сказать, что, насколько я знаю, вы не можете переключиться из режима установки (запускается setup.exe) в режим удаления (запускается uninstall.exe) из сценария установки.
InnoSetup предполагает, что запуск Setup.exe эквивалентен желанию установки или обновления. Если бы пользователь хотел удалить, он бы запустил деинсталлятор, а не установку.