标签: inno-tools-downloader

Inno设置:从Internet安装文件

我正在使用Inno Setup来分发我的应用程序.是否可以在Inno Script中查看特定条件,并根据需要从Internet下载并安装一些文件.

inno-setup inno-tools-downloader inno-download-plugin

13
推荐指数
3
解决办法
1万
查看次数

InnoTools Downloader未与Inno 5.5合作

根据SO上几篇文章的推荐,我一直在与InnoTools Downloader合作,尝试在Inno设置的安装脚本中为我们的应用程序安装第三方依赖项.

不幸的是,InnoTools Downloader在几年内还没有更新,并且开始看起来与目前的Inno Tools设置(目前我机器上的5.5.2(u))不兼容.ITD中的PChar参数已被PAnsiChar参数取代,当我尝试运行各种ITD_xxx程序时,它会给我不同程度的失败:

  • ITD_DownloadFiles 给出类型不匹配错误,无法在Inno Setup中编译
  • ITD_DownloadFile 编译,但显示的文件长度为6KB且不可运行.

有没有人让ITP与更新的Inno(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;
Run Code Online (Sandbox Code Playgroud)

当它运行时,它将弹出一个对话框,说明它"下载"并存储文件的位置 - 在我的机器上它位于c:\ Users \\ AppData\Local\Temp的子目录中.此文件为6KB,而不是从http://git-scm.com/download/win下载的文件,目前为15,221KB.

ITP_DownloadAfter方法给出了类似的结果.

inno-setup inno-tools-downloader

6
推荐指数
1
解决办法
1937
查看次数