2009-05-20 138 views
2

我可以使用NSIS的Vpatch从一个版本生成补丁文件到另一个版本。 假设我有mydll.dll版本1,并且我有一个补丁程序将其更新到版本2.然后我再次有一个新版本,因此我生成另一个补丁程序将其更新到版本3.NSIS补丁(一个文件中有多个补丁)

什么让我困扰尽管如此,如果用户取消更新到版本2等等。然后,我的最新版本让我们说是版本20.用户决定更新到版本20.是否有一种方法来生成一个类似于累积性的补丁?而用户可以从任何旧版本跳转到最新版本(即版本3到版本20)而无需通过两者之间的版本?

我已经在vpatch的文档中读过这行 - >“如果你想升级版本1和版本2到版本3,你可以在一个文件中添加1> 3和2> 3补丁。 “但我怎么样?

如果我读了30个版本,该怎么办?这是否意味着我必须创建一个补丁,其参数是旧文件(版本1-29)和新文件(版本20)?

回答

1

我说你有两个选择:

  • 你有一个新版本,你GENPAT为每一个以前的版本补丁应用到新的每次版本
  • GENPAT只是从New-1到New(附加到已经具有New-2到New-1等的补丁文件),并在安装时继续调用vpatch :: vpatchfile,直到返回值为“OK,new版本已安装“,而不仅仅是”确定“(您不需要为此存档所有旧版本,但如果用户跳过许多更新,则需要更长的时间才能应用更新)
1

VPatch本身就是一个开源项目,所以你可以在他们的论坛上提问。这家伙写道,你可以问他问题。有一个从他的网页,以电子邮件形式的链接:http://www.tibed.net/vpatch/