我正在使用最新版本的inno,在安装过程中执行以下操作:
步骤[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
的操作然后再安装依赖项(不理想)。
答案 0 :(得分:11)
您可以使用ExtractTemporaryFile()
事件功能中的PrepareToInstall
功能将之前[Files]
部分中的任何文件提取到{tmp}
,并在设置时将其删除饰面。与脚本和各种钩子一起使用Inno Setup几乎可以实现所有功能。
查看Inno Setup帮助的“Pascal Scripting”部分,特别是“支持函数参考”。在那里,您可以找到ExtractTemporaryFile()
等文档。
答案 1 :(得分:-2)
{TMP}
安装程序或卸载使用的临时目录。这不是用户的TEMP环境变量的值。它是用户临时目录的子目录,它是在启动时由安装程序或卸载创建的(名称类似于“C:\ WINDOWS \ TEMP \ IS-xxxxx.tmp”)。安装或卸载退出时,将删除此目录中的所有文件和子目录。在安装过程中,这主要用于提取要在[运行]部分中执行但在安装后不需要的文件。