インストールされたファイルをInnoSetupのセットアップサブフォルダー内のファイルで上書きします
Dec 06 2020
最近、Windows 1064ビットコンピューターでプレイできる古いPCゲームをいくつか見つけました。ゲームを機能させるために、さまざまなオンラインソースを調べました。今、私はゲームを正しく動作させるためにとられるすべてのさまざまなステップのためのカスタムインストーラーを作成することに興味があります。Inno Setupを介して、C&CGeneralsをカスタムインストーラーで動作させることに成功しました。ただし、次のことを行うための少しの調査と試行の後、専門知識が不足しています。
- ソフトウェアをインストールし、公式パッチを使用してインストールされたソフトウェアを更新することができます。
- 変更したファイルをインストールサブフォルダーからコピーして、更新後にメインフォルダーにインストールされているファイルを上書きするスクリプトを追加する方法がわかりません。更新は、変更されたファイルでは機能しません。
例:
- プログラムはにインストールされ
C:\Program Files (x86)\Programv1.exe
ます。 - セットアップソースファイルにはサブフォルダーが含まれています
\modfiles
。 Programv1.exe
パッチ後の更新を次のように上書きしたい\modfiles\Programv2.exe
これは[Code]
セクションの下にありますか?旗のある[Run]
セクションの下に入ることができますpostinstall
か?最後のステップとしての単純なコピーと上書きコマンドのように?
ありがとう!
回答
1 MartinPrikryl Dec 07 2020 at 15:19
これを達成する方法はたくさんあります。
AfterInstall
「mod」がインストールされる前でも、パラメータを使用してパッチを実行できます。Inno Setup:他のインストーラーをインストールして実行してから、インストールを続行するを参照してください。次に、modを(サブフォルダーではなく)インストールフォルダーに直接インストールできます。[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}
Run
パッチをインストールした後、エントリを使用してmodをコピーします。[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""
Pascalスクリプトでコーディングできます。(Firebird)サブインストーラーが終了した後、InnoSetupでカスタマイズされたバージョンの構成ファイルをインストールするを参照してください。