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



我的安装程序使用Inno Setup创建的大小约为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:UsersMarkusAppDataLocalTempis-CBETM.tmplicense.rtf

我正在使用自定义许可证页面,在该页面上提取文件并将其加载为 RTFText:

procedure LicensePage_Create;
var
LicenseFileName: string;
LicenseFilePath: string;
LicenseText: AnsiString;
begin
LicensePage := CreateOutputMsgMemoPage(wpSelectDir, SetupMessage(msgWizardLicense), SetupMessage(msgLicenseLabel), SetupMessage(msgLicenseLabel3), '');
LicensePage.RichEditViewer.Height := WizardForm.LicenseMemo.Height;
LicenseFileName := 'license.rtf';
ExtractTemporaryFile(LicenseFileName);
LicenseFilePath := ExpandConstant('{tmp}license.rtf');
LoadStringFromFile(LicenseFilePath, LicenseText);
LicensePage.RichEditViewer.RTFText := LicenseText;
DeleteFile(LicenseFilePath);
LicensePage.OnActivate := @LicensePageActivate;
LicenseAcceptedRadio := CloneLicenseRadioButton(WizardForm.LicenseAcceptedRadio);
LicenseNotAcceptedRadio := CloneLicenseRadioButton(WizardForm.LicenseNotAcceptedRadio);
LicenseNotAcceptedRadio.Checked := True;
LicensePageID := LicensePage.ID;
end;

当你想使用SolidCompression时(真的值得吗?(,你必须把安装程序启动所需的所有文件(如"许可证"文件(放在大文件之前

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

最新更新