Sobrescriba los archivos instalados con archivos en la subcarpeta de configuración en Inno Setup

Dec 06 2020

Recientemente encontré algunos juegos de PC antiguos para jugar en mi computadora con Windows 10 de 64 bits. He buscado en varias fuentes en línea para que los juegos funcionen. Ahora estoy interesado en crear un instalador personalizado para todos los pasos que se tomaron para que los juegos funcionen correctamente. Conseguí que C&C Generals funcionara con un instalador personalizado a través de Inno Setup. Sin embargo, me falta la experiencia después de un poco de investigación y prueba para hacer lo siguiente:

  1. Puedo instalar el software y usar el parche oficial para actualizar el software instalado.
  2. No estoy seguro de cómo agregar un script para copiar archivos modificados de la subcarpeta de instalación para sobrescribir los archivos instalados en la carpeta principal después de la actualización. La actualización no funciona en los archivos modificados.

Ejemplo:

  • El programa se instala en C:\Program Files (x86)\Programv1.exe.
  • Los archivos de origen de instalación incluyen una subcarpeta \modfiles.
  • Me gustaría sobrescribir Programv1.exela actualización posterior al parche con\modfiles\Programv2.exe

¿Va esto debajo de la [Code]sección? ¿Puede ir debajo de la [Run]sección con una postinstallbandera? ¿Como un simple comando de copiar y sobrescribir como último paso?

¡Gracias!

Respuestas

1 MartinPrikryl Dec 07 2020 at 15:19

Hay muchas formas de lograrlo.

  1. Puede ejecutar el parche usando el AfterInstallparámetro, incluso antes de que se instale el "mod". Consulte Inno Setup: Instale otro instalador y ejecútelo antes de continuar con la instalación . Luego puede instalar el mod directamente en la carpeta de instalación (no en la subcarpeta):

    [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}
    
  2. Use la Runentrada para copiar el mod después de instalar el parche:

    [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""
    
  3. Puede codificarlo en Pascal Script. Consulte Instalar la versión personalizada del archivo de configuración en Inno Setup después de que finalice el subinstalador (Firebird)