Программирование: Код деинсталляции

Pascal-сценарий также может содержать код, который будет выполнен во время удаления программы. Для получения дополнительной информации обратитесь к разделу справки "Функции событий".

При разработке кода, выполняемого во время удаления, важно помнить об одной особенности: в случаях, когда несколько версий одного приложения установлены друг за другом, во время удаления запускается только один Pascal-сценарий. Обычно выбирается сценарий из самой последней установки. Однако, если версия Inno Setup для сборки новой версии приложения была понижена, для удаления может быть выбран сценарий, созданный с использованием более новой версии Inno Setup. Аналогичная ситуация может возникнуть, если пользователь устанавливает более старую версию приложения поверх более новой.

При создании установки, которая является "патчем" (исправлением) для другой установки, и при его установке используется тот же журнал удаления, что и при первоначальной установке (т.е. для директивы Uninstallable задано значение yes, а для директивы AppId указан тот же идентификатор, что и для первоначальной установки), убедитесь, что патч содержит полную копию секции [Code] из первоначальной установки. В противном случае при удалении код не будет выполнен.

Однако, если в патче используется директива Uninstallable со значением no, то программа установки не коснётся существующего EXE-файла удаления или журнала удаления. В этом случае копировать секцию [Code] из первоначальной установки не обязательно.