1

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

4

1 回答 1

2

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

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

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

如果你不能建立这样的在线服务,另一个选择是有一个带有文件列表和时间戳的静态纯文本文件。将文件上传到 FTP 服务器。每次更新服务器上的文件时,都需要更新该文件。安装程序将下载文件,对其进行解析并自行决定哪些文件需要更新。

于 2016-04-11T15:25:41.727 回答