Sobrescrever arquivos instalados com arquivos na subpasta de configuração no Inno Setup
Recentemente, encontrei alguns jogos de PC antigos para jogar no meu computador Windows 10 de 64 bits. Eu olhei várias fontes online para fazer os jogos funcionarem. Agora estou interessado em criar um instalador personalizado para todas as várias etapas executadas para fazer os jogos funcionarem corretamente. Consegui fazer o C&C Generals trabalhar com um instalador personalizado por meio do Inno Setup. No entanto, depois de um pouco de pesquisa e ensaio, não tenho experiência para fazer o seguinte:
- Consigo instalar o software e usar o patch oficial para atualizar o software instalado.
- Não tenho certeza de como adicionar um script para copiar arquivos modificados da subpasta de instalação para substituir os arquivos instalados na pasta principal após a atualização. A atualização não funciona nos arquivos modificados.
Exemplo:
- O programa é instalado em
C:\Program Files (x86)\Programv1.exe
. - Os arquivos de origem da instalação incluem uma subpasta
\modfiles
. - Gostaria de substituir a
Programv1.exe
atualização pós-patch com\modfiles\Programv2.exe
Isso vai na [Code]
seção? Pode ir para a [Run]
seção com uma postinstall
bandeira? Como um comando simples de copiar e substituir como última etapa?
Obrigado!
Respostas
Existem muitas maneiras de conseguir isso.
Você pode executar o patch usando o
AfterInstall
parâmetro, mesmo antes de o "mod" ser instalado. Veja Inno Setup: Instale outro instalador e execute-o antes de continuar minha instalação . Em seguida, você pode instalar o mod diretamente na pasta de instalação (não na subpasta):[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}
Use a
Run
entrada para copiar o mod depois de instalar o patch:[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""
Você pode codificá-lo em Pascal Script. Veja Instalar a versão personalizada do arquivo de configuração no Inno Setup depois que o subinstalador (Firebird) terminar