Я использую Inno Setup для создания установщика. Когда я запускаю установщик более старой версии (например, 1.0.0.2) на компьютере, на котором уже установлено приложение более новой версии (например, 1.0.0.3), я не хочу, чтобы файлы с таким именем перезаписывались.
Как я понял отсюда
- Если существующий файл имеет более новую версию, чем устанавливаемый файл, или если у существующего файла есть информация о версии, а у устанавливаемого файла нет, существующий файл не будет заменен.
Справка Inno Setup, раздел Files
запуск установщика более старой версии поверх существующей более новой версии НЕ должен заменять существующий файл.
Я создал два установщика. Старая версия (1) имеет:
AppVersion=1.0.0.2
VersionInfoVersion={#SetupSetting('AppVersion')}
и более новая версия (2) имеет:
AppVersion=1.0.0.3
VersionInfoVersion={#SetupSetting('AppVersion')}
Оба установщика имеют одинаковый раздел Файлы:
[Files]
Source: "D:\installer\test1003\*"; DestDir: "{app}\app"; Flags: recursesubdirs createallsubdirs
Но когда я запускаю (1) с (2) установленным файлом с тем же именем, он заменяется (и наоборот, но, как я понимаю, это логично)
Я решил создать файлы журналов для обоих установщиков, и вот что я получил:
Имя файла Dest: C: \ Program Files \ dir \ app \ tryout.txt
Отметка времени нашего файла: 2019-01-23 13: 02: 10.000
Файл Dest существует.
Отметка времени существующего файла: 2019-01-23 13: 01: 50.000
Версия нашего файла: (нет)
Версия существующего файла: (нет)
Эти части идентичны, кроме меток времени.
Есть идеи, как установить версии для установленных файлов?
Спасибо заранее.
Я не уверен, что это важно, но я использую версию Inno Setup для Unicode. Теперь он поддерживает только одну версию, но я хочу добавить еще позже.