在启动设置而不是结束时提取文件

Bel*_*iez 5 deployment installation inno-setup

我正在使用最新版本的inno,在安装过程中执行以下操作:

  1. 执行依赖性检查以查看安装的内容
  2. 安装尚未安装的依赖项(.net,sql server,directx等)
  3. 从[Files]部分安装应用程序和文件(wpReady)
  4. 检查SQL Server以获取以前安装的数据库并创建/更新表等

步骤[4]创建数据库和表等,只有在已安装SQL Server时才有效,这就是为什么在步骤[2]中完成的原因.

输出目录包含创建的setup.exe,我手动放置包含上述步骤[1,2和4]所需文件的附加依赖项文件夹.

这很好但我想创建一个包含所有依赖项的单个exe,wpReady并在上面的Step [1] 之前和之前提取依赖项.

依赖项在该[Files]部分中,但wpReady在安装程序完成所有表单并尝试安装文件之后安装程序执行消息之前,不会提取这些文件.

我使用以下内容添加了setup.exe所需的内容

[Files]
Source: Output\Dependencies\*; DestDir: {tmp}; Flags: deleteafterinstall
Run Code Online (Sandbox Code Playgroud)

将文件提取到临时目录的最佳方法是什么,wpReady或者我应该先执行操作wpReady然后再安装依赖项(虽然不太理想).

mgh*_*hie 11

您可以使用事件ExtractTemporaryFile()功能中的PrepareToInstall函数从该[Files]部分中提取任何文件{tmp},并在安装完成后将其删除.结合脚本和各种钩子,Inno Setup为您提供几乎所有可以实现的功能.

查看Inno Setup帮助的"Pascal Scripting"部分,特别是"支持函数参考".在那里你会找到文件ExtractTemporaryFile()和更多.