2009-08-28 4 views
0

Я использую Inno Setup для установщика/деинсталлятора моего продукта. У моего программного обеспечения есть возможности автоматического обновления, в течение которого он может не только изменять существующие двоичные файлы, но и добавлять новые. Это дополнительные файлы продуктов, которые помещаются в каталог установки продукта, а не файлы данных.Удаление файлов, изначально не установленных установкой INNO

Деинсталлятор Inno Setup знает, как удалить файлы по имени, которые он первоначально разместил там во время установки. Поскольку автоматическое обновление не изменяет файлы unins000.exe или unins000.dat, составляющие деинсталлятор, каким образом можно было бы удалить эти новые файлы продуктов во время удаления?

ответ

2

Самый простой способ я вижу иметь пакетный файл в программе директории, которая удаляет все файлы, которые были добавлены после установки, и выполняется при удалении:

[UninstallRun] 
Filename: cleanup.cmd; WorkingDir: {app}; Flags: shellexec runminimized 

UninstallRun команды выполняются как первый шаг удаления, так что это должно работать нормально. Если вас беспокоит идея запуска пакетного скрипта, вы можете легко создать свой собственный файл cleanup.exe, который удалит файлы.

При выполнении автоматического обновления вы также должны обновить файл очистки, чтобы он включал все файлы, которые были добавлены с текущим обновлением.

+1

Я пошел с аналогичным решением. У меня есть пользовательская DLL, которую вызывают и экспортируют деинсталлятор. Я могу изменить содержимое этой экспортированной DLL в качестве времени обновления при сохранении прототипа. Код удаляет все файлы, добавленные обновлением. – Charles

 Смежные вопросы

  • Нет связанных вопросов^_^