Inno setup: ExtractTemporaryFile causa congelamento do assistente

Criei páginas personalizadas para gerenciar ferramentas redist específicas, dependendo da escolha do usuário.

Essas ferramentas estão vinculadas às caixas de seleção marcadas pelo usuário se ele deseja ou não instalar essas ferramentas. Em seguida, basta vir uma página para mostrar ao usuário a progressão da instalação de cada ferramenta.

O problema que tenho aqui é que a página de progresso é mostrada apenas quando o primeiro ExtractTemporaryFile das configurações das ferramentas é concluído, mostrando a última página como se estivesse congelada.

A única maneira de permitir que a página de progresso seja exibida antes que o ExtractTemporaryFile aconteça é colocar uma MsgBox antes de qualquer função de instalação. Mas, mesmo nesse caso, quando o ExtractTemporaryFile é iniciado, a animação da barra de progresso é congelada até que o ExtractTemporaryFile seja concluído ...

Aqui está a parte do código que faz isso:

procedure CurPageChanged(CurPageID: Integer);
begin
  If CurPageID=PageInstallationPersonnalisee.ID then
    begin
      ProgressBarLabelPageInstPerso.Caption := 'Initialisation...';
      if InstallTool1 = True then
        begin
          ProgressBarLabelPageInstPerso.Caption := 'Installing InstallTool1...';
          F_InstallTool1();
        end;
      if InstallTool2 = True then
        begin
          ProgressBarLabelPageInstPerso.Caption := 'Installing InstallTool2...';
          F_InstallTool2();
        end;
      if InstallTool3 = True then
        begin
          ProgressBarLabelPageInstPerso.Caption := 'Installing InstallTool3...';
          F_InstallTool3();
        end;

      ProgressBarPageInstPerso.Style := npbstMarquee;
      //ProgressBarPageInstPerso.Style := npbstNormal;
      ProgressBarPageInstPerso.Position := 100;

      CancelWithoutPrompt:=True;
      WizardForm.Close;
    end;
end;

Observe que ExtractTemporaryFile() é feito em cadaF_InstallTooln() função.

Outros fazem parte das seções de instalação e arquivo que podem ajudar:

[Setup]
SolidCompression=no

[Files]
;Temporary redists
Source: "{#MyRessourcesPath}InstallTool1_Setup.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall noencryption dontcopy
Source: "{#MyRessourcesPath}InstallTool2_Setup.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall noencryption dontcopy
Source: "{#MyRessourcesPath}InstallTool3_Setup.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall noencryption dontcopy

Aqui, a página PageInstallationPersonnalisee não é mostrada até que o primeiro ExtractTemporaryFile seja concluído ...

Eu estou ciente de queExtractTemporaryFile pode causar algum atraso naprocesso de instalação, mas por que deveria causar um congelamento do Assistente?

Portanto, minha pergunta é: no meu cenário, existe uma maneira de forçar a atualização do assistente para que ele apareça antes de qualquerExtractTemporaryFile procedimento é lançado?

questionAnswers(1)

yourAnswerToTheQuestion