Самый простой способ, который я вижу, это иметь пакетный файл в вашей директории программы, который удаляет все файлы, которые были добавлены после установки и выполняется при удалении:
[UninstallRun]
Filename: cleanup.cmd; WorkingDir: {app}; Flags: shellexec runminimized
UninstallRun
команды выполняются в качестве первого шага удаления, так что это должно работать нормально. Если вас беспокоит идея запуска пакетного скрипта, вы можете легко создать свой собственный файл cleanup.exe, который удалит файлы.
При выполнении автоматического обновления необходимо также обновить файл очистки, чтобы он включал все файлы, которые были добавлены с текущим обновлением.