NSIS patching (vários patches em um arquivo)
Pergunta
Eu sou capaz de gerar arquivos de patch de uma versão para outra usando NSIS' vPatch. Digamos que eu tenho mydll.dll versão 1, e eu tenho um patch para atualizá-lo para a versão 2. Então eu tenho uma nova versão novamente, assim eu gerar outro patch para atualizá-lo para a versão 3.
O que me incomoda que é, o que se o usuário cancela a atualização para a versão 2 e assim por diante. Então diga a minha mais recente versão de Let There é a versão 20. usuário decide atualização para a versão 20. É uma maneira de gerar um patch que é como acumulado na natureza? enquanto o usuário pode saltar de versão de qualquer versão antiga para a versão mais recente (isto é, ver 3 para ver 20) sem passar pelas versões no meio?
Eu li esta linha na documentação do vPatch ---> "se você quer ser capaz de atualizar a versão 1 e 2 para versão 3, você pode colocar um arquivo 1> 3 e 2> 3 remendo em um." Mas como faço isso?
E se eu alread tem como 30 versões. Isso significa que eu tenho que criar um patch cujos argumentos são arquivos antigos (versões 1-29) e novo arquivo (Version20)?
Solução
Eu diria que você tem duas opções:
- Toda vez que você tem uma nova versão que GENPAT um patch para cada versão anterior para a nova versão
- GENPAT só a partir de New-1 para Nova (anexando a um arquivo de patch que já tinha New-2 para New-1 etc) e continuar chamando vPatch :: vpatchfile no momento da instalação até o valor de retorno é "OK, nova versão já instalado" e não apenas 'OK' (Você não precisa de um arquivo de todas as versões antigas para isso, mas levará mais tempo para que o usuário aplicar a atualização se tivessem pulado muitas atualizações)
Outras dicas
vPatch é um projeto open source em si mesmo para que você poderia pedir em seu fórum. O cara escreveu ele diz que você pode fazer-lhe perguntas. Há um link de sua página para o formulário de e-mail: http://www.tibed.net/vpatch/