Überschreiben Sie installierte Dateien mit Dateien im Setup-Unterordner in Inno Setup

Dec 06 2020

Ich habe kürzlich einige alte PC-Spiele gefunden, die auf meinem Windows 10 64-Bit-Computer gespielt werden können. Ich habe mir verschiedene Online-Quellen angesehen, um die Spiele zum Laufen zu bringen. Jetzt bin ich daran interessiert, ein benutzerdefiniertes Installationsprogramm für all die verschiedenen Schritte zu erstellen, die ausgeführt werden, damit die Spiele ordnungsgemäß funktionieren. Es ist mir gelungen, C & C Generals über Inno Setup dazu zu bringen, mit einem benutzerdefinierten Installationsprogramm zusammenzuarbeiten. Nach einigem Nachforschen und Ausprobieren fehlt mir jedoch das Fachwissen, um Folgendes zu tun:

  1. Ich kann die Software installieren und den offiziellen Patch verwenden, um die installierte Software zu aktualisieren.
  2. Ich bin nicht sicher, wie ich ein Skript hinzufügen soll, um geänderte Dateien aus dem Unterordner install zu kopieren und die installierten Dateien nach dem Update im Hauptordner zu überschreiben. Das Update funktioniert nicht mit den geänderten Dateien.

Beispiel:

  • Programm installiert auf C:\Program Files (x86)\Programv1.exe.
  • Setup-Quelldateien enthalten einen Unterordner \modfiles.
  • Möchte das Programv1.exePost-Patch-Update mit überschreiben\modfiles\Programv2.exe

Geht das unter den [Code]Abschnitt? Kann es [Run]mit einer postinstallFlagge unter den Abschnitt gehen ? Wie ein einfacher Befehl zum Kopieren und Überschreiben als letzter Schritt?

Vielen Dank!

Antworten

1 MartinPrikryl Dec 07 2020 at 15:19

Es gibt viele Möglichkeiten, dies zu erreichen.

  1. Sie können den Patch mit dem AfterInstallParameter ausführen , noch bevor der "Mod" installiert ist. Siehe Inno Setup: Installieren Sie ein anderes Installationsprogramm und führen Sie es aus, bevor Sie mit der Installation fortfahren . Dann kannst du den Mod direkt im Installationsordner installieren (nicht im Unterordner):

    [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. Verwenden Sie den RunEintrag, um den Mod nach der Installation des Patches zu kopieren:

    [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. Sie können es in Pascal Script codieren. Siehe Installieren der angepassten Version der Konfigurationsdatei in Inno Setup nach Abschluss des Subinstallers (Firebird)