Исправление NSIS (несколько исправлений в одном файле) - PullRequest
3 голосов
/ 20 мая 2009

Я могу генерировать файлы исправлений из одной версии в другую, используя Vpatch от NSIS. Допустим, у меня mydll.dll версии 1, и у меня есть патч для его обновления до версии 2. Затем у меня снова новая версия, поэтому я создаю другой патч для обновления до версии 3.

Что меня беспокоит, так это то, что если пользователь отменяет обновление до версии 2 и так далее. Тогда моя последняя версия, скажем, версия 20. Пользователь решает обновить ее до версии 20. Есть ли способ сгенерировать патч, который по своей природе является накопительным? в то время как пользователь может перейти с версии любой старой версии на самую новую версию (т. е. от 3 до 20), не пропуская версии между ними?

Я читал эту строку в документации vpatch ---> «Если вы хотите обновить версию 1 и 2 до версии 3, вы можете поместить патч 1> 3 и 2> 3 в один файл». Но как мне это сделать?

Что если у меня уже есть 30 версий. Означает ли это, что мне нужно создать патч, аргументами которого являются старые файлы (версии 1-29) и новый файл (версия 20)?

Ответы [ 2 ]

1 голос
/ 30 мая 2010

Я бы сказал, что у вас есть два варианта:

  • Каждый раз, когда у вас появляется новая версия, вы GENPAT патч для каждой предыдущей версии до новой версии
  • GENPAT только от New-1 до New (добавление к файлу исправления, в котором уже были New-2 до New-1 и т. Д.) И продолжайте вызывать vpatch :: vpatchfile во время установки, пока возвращаемое значение не будет "ОК, новая версия уже установлено ", а не просто" ОК "(для этого вам не нужен архив всех старых версий, но пользователю потребуется больше времени, чтобы применить обновление, если они пропустили много обновлений)
1 голос
/ 28 мая 2010

VPatch сам по себе является проектом с открытым исходным кодом, поэтому вы можете спросить его на форуме. Парень написал это говорит, что вы можете задать ему вопросы. На его странице есть ссылка на форму электронной почты: http://www.tibed.net/vpatch/

...