Заменить установленные файлы файлами в подпапке установки в Inno Setup
Недавно я нашел несколько старых компьютерных игр, в которые можно поиграть на моем 64-битном компьютере с Windows 10. Я просмотрел различные онлайн-источники, чтобы игры заработали. Теперь я заинтересован в создании специального установщика для всех шагов, предпринятых для правильной работы игр. Мне удалось заставить C&C Generals работать с пользовательским установщиком через Inno Setup. Однако после небольшого исследования и проб мне не хватает опыта, чтобы сделать следующее:
- Я могу установить программное обеспечение и использовать официальный патч для обновления установленного программного обеспечения.
- Я не уверен, как добавить сценарий для копирования измененных файлов из подпапки установки, чтобы перезаписать установленные файлы в основной папке после обновления. Обновление не работает с измененными файлами.
Пример:
- Программа устанавливается в
C:\Program Files (x86)\Programv1.exe
. - Исходные файлы установки включают вложенную папку
\modfiles
. - Хотел бы перезаписать
Programv1.exe
обновление после патча с помощью\modfiles\Programv2.exe
Подходит ли это к [Code]
разделу? Может под [Run]
раздел с postinstall
флагом пройти ? Нравится простая команда копирования и перезаписи в качестве последнего шага?
Благодаря!
Ответы
Есть много способов добиться этого.
Вы можете выполнить патч, используя
AfterInstall
параметр, даже до установки "мода". См. Inno Setup: установите другой установщик и запустите его, прежде чем продолжить установку . Затем вы можете установить мод прямо в папку установки (а не во вложенную папку):[Files] ; Install original game Source: C:\source\TheGame\*; Dest: {app} ; Run patch Source: C:\patch\PatchTheGame.exe; Dest: {tmp}; AfterInstall: RunPatch ; Install mod Source: C:\mod\Program.exe; Dest: {app}
Используйте
Run
запись для копирования мода после установки патча:[Files] ; Install original game Source: C:\source\TheGame\*; Dest: {app} ; Extract the patch somewhere Source: C:\patch\PatchTheGame.exe; Dest: {tmp} ; Extract the mod somewhere Source: C:\mod\Program.exe; Dest: {tmp} [Run] Filename: {tmp}\PatchTheGame.exe Filename: {cmd}; Parameters: /C copy ""{tmp}\Program.exe"" ""{app}\Program.exe""
Вы можете запрограммировать это на Pascal Script. См. Раздел Установка настроенной версии файла конфигурации в Inno Setup после завершения работы субинсталлятора (Firebird).