Zastąp zainstalowane pliki plikami w podfolderze ustawień w Inno Setup
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:
- Jestem w stanie zainstalować oprogramowanie i użyć oficjalnej poprawki, aby zaktualizować zainstalowane oprogramowanie.
- 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.exe
aktualizację po aktualizacji za pomocą\modfiles\Programv2.exe
Czy to znajduje się w [Code]
sekcji? Czy może przejść pod [Run]
sekcję z postinstall
flagą? Lubisz proste polecenie kopiowania i nadpisywania jako ostatni krok?
Dzięki!
Odpowiedzi
Można to osiągnąć na wiele sposobów.
Możesz uruchomić patch używając
AfterInstall
parametru, 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}
Użyj
Run
wpisu, 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""
Możesz go zakodować w skrypcie Pascal. Zobacz Instalowanie dostosowanej wersji pliku konfiguracyjnego w Inno Setup po zakończeniu działania subinstalatora (Firebird)