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

Long installer startup time - add dialog before 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:\Users\Markus\AppData\Local\Temp\is-CBETM.tmp\license.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时(真的值得吗?),你必须把安装程序启动所需的所有文件(比如"license"文件)大文件之前。

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