Zastąp zainstalowane pliki plikami w podfolderze ustawień w Inno Setup

Dec 06 2020

Niedawno znalazłem kilka starych gier na PC do grania na moim komputerze z 64-bitowym systemem Windows 10. Przejrzałem różne źródła online, aby gry działały. Teraz jestem zainteresowany stworzeniem niestandardowego instalatora dla wszystkich różnych kroków podjętych, aby gry działały poprawnie. Udało mi się przekonać C&C Generals do pracy z niestandardowym instalatorem za pośrednictwem Inno Setup. Jednak po kilku badaniach i próbach brakuje mi wiedzy specjalistycznej, aby wykonać następujące czynności:

  1. Jestem w stanie zainstalować oprogramowanie i użyć oficjalnej poprawki, aby zaktualizować zainstalowane oprogramowanie.
  2. Nie jestem pewien, jak dodać skrypt kopiujący zmodyfikowane pliki z podfolderu instalacyjnego, aby nadpisać zainstalowane pliki w folderze głównym po aktualizacji. Aktualizacja nie działa na zmodyfikowanych plikach.

Przykład:

  • Program zostanie zainstalowany na C:\Program Files (x86)\Programv1.exe.
  • Pliki źródłowe Instalatora zawierają podfolder \modfiles.
  • Chcesz nadpisać Programv1.exeaktualizację po aktualizacji za pomocą\modfiles\Programv2.exe

Czy to znajduje się w [Code]sekcji? Czy może przejść pod [Run]sekcję z postinstallflagą? Lubisz proste polecenie kopiowania i nadpisywania jako ostatni krok?

Dzięki!

Odpowiedzi

1 MartinPrikryl Dec 07 2020 at 15:19

Można to osiągnąć na wiele sposobów.

  1. Możesz uruchomić patch używając AfterInstallparametru, nawet zanim "mod" zostanie zainstalowany. Zobacz Inno Setup: zainstaluj inny instalator i uruchom go przed kontynuowaniem instalacji . Następnie możesz zainstalować mod bezpośrednio do folderu instalacyjnego (nie do podfolderu):

    [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. Użyj Runwpisu, aby skopiować mod po zainstalowaniu łatki:

    [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. Możesz go zakodować w skrypcie Pascal. Zobacz Instalowanie dostosowanej wersji pliku konfiguracyjnego w Inno Setup po zakończeniu działania subinstalatora (Firebird)