Écraser les fichiers installés par les fichiers du sous-dossier setup dans Inno Setup

Dec 06 2020

J'ai récemment trouvé de vieux jeux PC à jouer sur mon ordinateur Windows 10 64 bits. J'ai regardé diverses sources en ligne pour faire fonctionner les jeux. Je suis maintenant intéressé par la création d'un programme d'installation personnalisé pour toutes les différentes étapes prises pour que les jeux fonctionnent correctement. J'ai réussi à faire travailler C&C Generals avec un installateur personnalisé via Inno Setup. Cependant, je n'ai pas l'expertise après quelques recherches et essais pour faire ce qui suit:

  1. Je peux installer le logiciel et utiliser le correctif officiel pour mettre à jour le logiciel installé.
  2. Je ne sais pas comment ajouter un script pour copier les fichiers modifiés du sous-dossier d'installation afin d'écraser les fichiers installés dans le dossier principal après la mise à jour. La mise à jour ne fonctionne pas sur les fichiers modifiés.

Exemple:

  • Le programme s'installe sur C:\Program Files (x86)\Programv1.exe.
  • Les fichiers source de l'installation incluent un sous-dossier \modfiles.
  • Souhaiterait remplacer la Programv1.exemise à jour du correctif avec\modfiles\Programv2.exe

Cela fait-il [Code]partie de la section? Peut-il passer sous la [Run]section avec un postinstalldrapeau? Comme une simple commande de copie et d'écrasement comme dernière étape?

Merci!

Réponses

1 MartinPrikryl Dec 07 2020 at 15:19

Il existe de nombreuses façons d'y parvenir.

  1. Vous pouvez exécuter le patch en utilisant le AfterInstallparamètre, avant même que le "mod" ne soit installé. Voir Inno Setup: Installez un autre programme d'installation et exécutez-le avant de continuer mon installation . Ensuite, vous pouvez installer le mod directement dans le dossier d'installation (pas dans le sous-dossier):

    [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. Utilisez l' Runentrée pour copier le mod après avoir installé le patch:

    [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. Vous pouvez le coder dans Pascal Script. Voir Installer une version personnalisée du fichier de configuration dans Inno Setup après la fin du sous-programme (Firebird)