Inno setup 安装程序启动时间长-在wpWelcome之前添加对话框?

Inno setup 安装程序启动时间长-在wpWelcome之前添加对话框?,inno-setup,pascalscript,Inno Setup,Pascalscript,我用Inno安装程序创建的安装程序大小约为850 MB,包含约7000个文件和890个文件夹,未压缩大小为1.98 GB 启动安装过程时,在显示Windows UAC对话框后,安装程序在显示欢迎对话框之前,会在任务栏中放置一个空图标约45秒 我假设这是在解包安装程序的过程中发生的?仅使用一个虚拟文件条目运行安装程序会立即显示欢迎对话框 在[Files]部分中,我只指定一个相对文件夹: Source: "{#Source}\*"; DestDir: "{app}"; Flags: ignoreve

我用Inno安装程序创建的安装程序大小约为850 MB,包含约7000个文件和890个文件夹,未压缩大小为1.98 GB

启动安装过程时,在显示Windows UAC对话框后,安装程序在显示欢迎对话框之前,会在任务栏中放置一个空图标约45秒

我假设这是在解包安装程序的过程中发生的?仅使用一个虚拟文件条目运行安装程序会立即显示欢迎对话框

[Files]
部分中,我只指定一个相对文件夹:

Source: "{#Source}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
[Setup]
部分中的压缩设置为:

Compression=lzma
SolidCompression=yes
在这段时间内,是否有一个对话框可以向用户提供视觉反馈,说明正在准备一些东西


在这个问题后面附加: 45秒挂起之前日志文件中的最后一项是:

Extracting temporary file: C:\Users\Markus\AppData\Local\Temp\is-CBETM.tmp\license.rtf
我正在使用一个自定义许可证页面,在该页面上提取文件并将其作为RTFText加载:

程序许可证页面\u创建;
变量
LicenseFileName:字符串;
LicenseFilePath:字符串;
许可证文本:AnsiString;
开始
LicensePage:=CreateOutputMsgMemoPage(wpSelectDir、SetupMessage(msgWizardLicense)、SetupMessage(msgLicenseLabel)、SetupMessage(msgLicenseLabel3),“”;
LicensePage.RichEditViewer.Height:=WizardForm.licensemo.Height;
LicenseFileName:=“license.rtf”;
提取临时文件(LicenseFileName);
LicenseFilePath:=ExpandConstant('{tmp}\license.rtf');
LoadStringFromFile(LicenseFilePath,LicenseText);
LicensePage.RichEditViewer.RTFText:=LicenseText;
删除文件(LicenseFilePath);
LicensePage.OnActivate:=@LicensePageActivate;
LicenseAcceptedRadio:=克隆LicenseRadioButton(WizardForm.LicenseAcceptedRadio);
LicenseNotAcceptedRadio:=克隆LicenseRadioButton(WizardForm.LicenseNotAcceptedRadio);
LicenseNotAcceptedRadio.Checked:=真;
LicensePageID:=LicensePage.ID;
结束;
当您想要使用(真的值得吗?)时,您必须将安装程序启动所需的所有文件(如“许可证”文件)放在大文件之前

否则,安装程序必须在启动时解压缩所有大文件。

当您想使用时(真的值得吗?),您必须将安装程序启动所需的所有文件(如“许可证”文件)放在大文件之前


否则,安装程序必须在启动时解压缩所有大文件。

日志文件是否指示Inno安装程序当时在做什么?(如果它实际上正在运行)在日志中,45秒间隔之前的最后一件事是
提取临时文件:C:\Users\Markus\AppData\Local\Temp\is CBETM.tmp\license.rtf
。告诉我们如何在设置中使用
license.rtf
。啊哈!这实际上让我想到了一个问题:在我的
[Files]
部分中,我将应用程序文件列在license.rtf之前。切换顺序解决了这个问题。为什么要用代码加载许可证?为什么不使用
LicenseFile
指令?(那么您就不会有这个问题了)日志文件是否指示Inno安装程序当时在做什么?(如果它实际上正在运行)在日志中,45秒间隔之前的最后一件事是
提取临时文件:C:\Users\Markus\AppData\Local\Temp\is CBETM.tmp\license.rtf
。告诉我们如何在设置中使用
license.rtf
。啊哈!这实际上让我想到了一个问题:在我的
[Files]
部分中,我将应用程序文件列在license.rtf之前。切换顺序解决了这个问题。为什么要用代码加载许可证?为什么不使用
LicenseFile
指令?(那么您就不会有这个问题了)谢谢您提供有关SolidCompression的提示!关闭它只会额外增加30MB。感谢您提供有关SolidCompression的提示!关闭它只会额外增加30MB。