5

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

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

步骤 [4] 创建数据库和表等,并且仅在已经安装 SQL Server 的情况下才有效,这就是在步骤 [2] 中完成它的原因。

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

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

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

我使用以下内容将我需要的内容添加到 setup.exe

[Files]
Source: Output\Dependencies\*; DestDir: {tmp}; Flags: deleteafterinstall

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

4

2 回答 2

11

您可以使用事件函数ExtractTemporaryFile()中的PrepareToInstall函数将任何文件从该[Files]部分提取到{tmp}更早的部分,并在设置完成时将其删除。连同脚本和各种钩子,Inno Setup 为您提供了几乎所有可以实现的东西。

查看 Inno Setup 帮助的“Pascal Scripting”部分,特别是“Support Functions Reference”。在那里你会找到ExtractTemporaryFile()更多的文档。

于 2009-04-28T13:27:35.110 回答
-2

{tmp}

安装程序或卸载程序使用的临时目录。这不是用户的 TEMP 环境变量的值。它是由安装程序或卸载程序在启动时创建的用户临时目录的子目录(名称类似于“C:\WINDOWS\TEMP\IS-xxxxx.tmp”)。当安装程序或卸载程序退出时,此目录中的所有文件和子目录都将被删除。在安装期间,这主要用于提取要在 [Run] 部分执行但在安装后不需要的文件。

于 2010-12-11T18:50:17.123 回答