2009-04-28 36 views
5

我使用的是最新版本的INNO的,做安装过程中的以下内容:提取文件

  1. 执行依赖检查,以查看安装的是什么
  2. 安装依赖关系尚未安装(.NET,SQL服务器,支持DirectX等)
  3. 安装应用程序,并从[文件]部分(wpReady)
  4. 检查SQL Server的文件,以前安装的数据B ase和创建/更新表等

步骤[4]创建数据库和表等,只有当SQL Server已经安装,这就是为什么它在步骤[2]中完成的工作。

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

这很好用,但我想创建一个只包含所有依赖关系的exe文件,并提取之前和之前的步骤[1]之前的依赖关系。

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

我用下面,增加了什么,我需要的setup.exe

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

什么是wpReady之前提取文件到临时目录的最好方法还是应该执行wpReady先行动再去安装依赖(虽然不理想)。

回答

11

可以使用ExtractTemporaryFile()功能在PrepareToInstall事件函数从[Files]部分中的任何文件解压到{tmp}早些时候,当安装完成后也将被删除。连同脚本和各种钩子Inno Setup为您提供几乎所有可以实现的功能。

查看Inno Setup帮助的“Pascal脚本”部分,特别是“支持函数参考”。在那里你会找到关于ExtractTemporaryFile()等的文档。

+0

非常感谢。简直不敢相信我错过了这个功能! – Belliez 2009-04-28 14:02:19

+0

要完成此操作的建议位置现在位于[PrepareToInstall]事件函数中,因为它允许更方便地使用警告和重新启动提示。 – Deanna 2012-07-09 10:39:52

-2

{TMP}由安装或卸载使用

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