Inno Setup의 setup 하위 폴더에있는 파일로 설치된 파일 덮어 쓰기

Dec 06 2020

최근에 Windows 10 64 비트 컴퓨터에서 재생할 수있는 오래된 PC 게임을 발견했습니다. 게임을 작동시키기 위해 다양한 온라인 소스를 살펴 보았습니다. 이제 게임이 제대로 작동하도록하기 위해 취한 모든 다양한 단계에 대한 사용자 지정 설치 프로그램을 만드는 데 관심이 있습니다. Inno Setup을 통해 C & C Generals에서 사용자 지정 설치 프로그램을 사용하는 데 성공했습니다. 그러나 나는 다음을 수행하기 위해 약간의 연구와 시도 끝에 전문 지식이 부족합니다.

  1. 소프트웨어를 설치하고 공식 패치를 사용하여 설치된 소프트웨어를 업데이트 할 수 있습니다.
  2. 업데이트 후 기본 폴더에 설치된 파일을 덮어 쓰기 위해 설치 하위 폴더에서 수정 된 파일을 복사하는 스크립트를 추가하는 방법을 잘 모르겠습니다. 업데이트는 수정 된 파일에서 작동하지 않습니다.

예:

  • 프로그램이 C:\Program Files (x86)\Programv1.exe.
  • 설치 소스 파일에는 하위 폴더가 포함됩니다 \modfiles.
  • Programv1.exe패치 후 업데이트 를 덮어 쓰시겠습니까?\modfiles\Programv2.exe

[Code]섹션 아래에 있습니까? 깃발이 있는 [Run]섹션 아래로 갈 수 있습니까 postinstall? 마지막 단계로 간단한 복사 및 덮어 쓰기 명령처럼?

감사!

답변

1 MartinPrikryl Dec 07 2020 at 15:19

이를 달성하는 방법에는 여러 가지가 있습니다.

  1. 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}
    
  2. Run패치를 설치 한 후 항목을 사용 하여 모드를 복사하십시오.

    [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. Pascal Script에서 코딩 할 수 있습니다. (Firebird) 하위 설치 프로그램이 완료된 후 Inno Setup에서 사용자 지정 버전의 구성 파일 설치를 참조하십시오.