Inno下载插件 - 仅下载更新的文件

时间:2016-04-11 14:45:27

标签: inno-setup pascalscript inno-download-plugin

我正在尝试使用Inno Setup和Inno Download Plugin(IDP)找到更新程序的最佳方法。我的程序大小约为3.5gb,因此找到一种方法,用户每次发布100mb更新时都不必下载3.5gb非常重要。

目前我有IDP使用以下代码从我的FTP下载我程序的所有文件:

procedure InitializeWizard();
begin
    idpSetLogin('%%username%%', '%%password%%');
    {Add all files in URL, including subdirectories}

    idpAddFtpDir('%%myftp%%','', ExpandConstant('{tmp}'), true);

    idpDownloadAfter(wpReady);
end;

向用户提供更新的最佳方式是什么,以便他们只需要下载更新的文件而不是全部3.5gb?

1 个答案:

答案 0 :(得分:1)

Inno Download Plugin没有API来检索服务器上文件的时间戳。

所以你必须以另一种方式解决它。

在Inno Setup中最容易实现的,就是拥有一个在线服务(比如一个简单的PHP脚本),安装程序将使用该版本调用许多已安装程序和正在安装的程序的版本号。该服务将列出需要更新的文件,安装程序将相应地执行操作。或者,您可以让安装程序发送所有已安装文件的时间戳,并逐个检查文件,列出需要更新的文件。

如果您无法构建此类在线服务,则另一个选项是具有包含文件列表及其时间戳的静态纯文本文件。将文件上传到FTP服务器。每次更新服务器上的文件时都需要更新该文件。安装程序将下载该文件,对其进行解析并自行确定需要更新的文件。