Inno Download Plugin - 只下载更新的文件

Inno Download Plugin - Only download updated files

我正在尝试找到使用 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 的最佳方式是什么?

Inno 下载插件没有 API 来检索服务器上文件的时间戳。

所以你得换个方法解决。

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

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