Timpa file yang diinstal dengan file di subfolder setup di Inno Setup

Dec 06 2020

Saya baru-baru ini menemukan beberapa game PC lama untuk dimainkan di komputer Windows 10 64-bit saya. Saya telah melihat berbagai sumber online untuk membuat game berfungsi. Sekarang saya tertarik untuk membuat penginstal khusus untuk semua berbagai langkah yang diambil agar game berfungsi dengan benar. Saya berhasil membuat C&C Generals bekerja dengan pemasang khusus melalui Pengaturan Inno. Namun saya kurang memiliki keahlian setelah sedikit penelitian dan uji coba untuk melakukan hal berikut:

  1. Saya dapat menginstal perangkat lunak dan menggunakan patch resmi untuk memperbarui perangkat lunak yang diinstal.
  2. Saya tidak yakin bagaimana cara menambahkan skrip untuk menyalin file yang diubah dari subfolder instal untuk menimpa file yang diinstal di folder utama setelah pembaruan. Pembaruan tidak bekerja pada file yang dimodifikasi.

Contoh:

  • Program dipasang ke C:\Program Files (x86)\Programv1.exe.
  • File sumber konfigurasi menyertakan subfolder \modfiles.
  • Ingin menimpa Programv1.exepembaruan tambalan pos dengan\modfiles\Programv2.exe

Apakah ini masuk di bawah [Code]bagian? Bisakah itu masuk di bawah [Run]bagian dengan postinstallbendera? Seperti perintah salin dan timpa sederhana sebagai langkah terakhir?

Terima kasih!

Jawaban

1 MartinPrikryl Dec 07 2020 at 15:19

Ada banyak cara untuk mencapai ini.

  1. Anda dapat menjalankan patch menggunakan AfterInstallparameter, bahkan sebelum "mod" diinstal. Lihat Pengaturan Inno: Instal penginstal lain dan jalankan sebelum melanjutkan penginstalan saya . Kemudian Anda dapat menginstal mod langsung ke folder instalasi (bukan ke subfolder):

    [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. Gunakan Runentri untuk menyalin mod setelah Anda menginstal tambalan:

    [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. Anda dapat mengkodekannya di Pascal Script. Lihat Menginstal versi file konfigurasi yang disesuaikan di Inno Setup setelah subinstaller (Firebird) selesai