Итак, я понимаю, что этот вопрос задавался раньше. Фактически, я прочитал около 10 из них, прежде чем писать это, но ни у одного из них нет подходящего решения, и я надеюсь, что в настоящее время кто-то что-то нашел.
Проблема: моя программа построена с использованием сценария, который создает все окончательные файлы в одной папке. Эти файлы включены в inno следующим образом:
[Files]
Source: "build\exe.win-amd64-3.6\*"; Excludes: "*.key, *.log"; DestDir: "{app}"; \
Flags: ignoreversion recursesubdirs createallsubdirs
Приложение существует уже несколько месяцев с разными обновлениями. Больше нет записей о старых файлах, хотя их можно было бы тщательно пересобрать, поскольку у нас есть контроль версий, и я мог бы снова собрать старые установщики.
Насколько я понимаю, вы должны использовать раздел InstallDelete
, чтобы избавиться от старых файлов - однако вы не должны использовать подстановочные знаки, а также нет раздела Excludes
для защиты единственной папки, которая у нас есть, которая может содержать пользовательские данные, которые они могут хочу сохранить.
Итак, как мне избавиться от старых файлов? Размер приложения составляет 100 МБ, и у текущего пользователя может быть более 300 МБ старых файлов, которые больше не нужны, я бы хотел их очистить.
TL; DR: я хочу, чтобы установщик перезаписал или удалил все файлы в каталоге приложения, за исключением одной папки, содержащей данные пользователя.