根据这里关于 SO 的几篇文章的推荐,我一直在使用 InnoTools 下载器尝试在 Inno 设置中的安装脚本期间为我们的应用程序安装第 3 方依赖项。
不幸的是,InnoTools 下载器几年来没有更新,并且开始看起来与当前的 Inno Tools 设置(目前我的机器上的 5.5.2 (u))不兼容。ITD 中的 PChar 参数已被 PAnsiChar 参数替换,当我尝试运行各种 ITD_xxx 程序时,它给了我不同程度的失败:
ITD_DownloadFiles
给出类型不匹配错误并且不会在 Inno Setup 中编译ITD_DownloadFile
编译,但显示的文件长度为 6KB 且不可运行。
有没有人让 ITP 使用更新的 Inno (post-5.3.0) unicode 版本运行?还是我应该四处寻找其他解决方案?
编辑为了澄清一点,我尝试进入 it_download.iss 文件并用 PAnsiChar 替换所有 PChar 实例。当我第一次尝试将 ITD 与我的安装脚本集成时,这让我克服了编译错误。
这是 Inno 脚本的示例部分:
[Code]
procedure InitializeWizard();
begin
ITD_Init; // initialize the InnoTools Downloader
// install 3rd party tool (ex. Git) from the internet.
if ITD_DownloadFile('http://git-scm.com/download/win',expandconstant('{tmp}\GitInstaller.exe'))=ITDERR_SUCCESS then begin
MsgBox(expandconstant('{tmp}\GitInstaller.exe'), mbInformation, MB_OK);
Exec(ExpandConstant('{tmp}\GitInstaller.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, tmpResult);
end
end;
当它运行时,它会弹出一个对话框,说明它“下载”并存储文件的位置——在我的机器上,它位于 c:\Users\\AppData\Local\Temp 的子目录中。此文件为 6KB,而从http://git-scm.com/download/win下载的文件目前为 15,221KB。
该ITP_DownloadAfter
方法给出了类似的结果。