Configuración Inno: ExtractTemporaryFile hace que el asistente se congele

He creado páginas personalizadas para administrar la instalación de herramientas de redistribución específicas según la elección del usuario.

Esas herramientas están vinculadas a casillas de verificación marcadas por el usuario si desea o no instalar esas herramientas. Luego, ven una página solo allí para mostrar al usuario la progresión de la instalación de cada herramienta.

El problema que tengo aquí es que la página de progreso se muestra solo cuando se realiza el primer ExtractTemporaryFile de las configuraciones de las herramientas, mostrando la última página como si se hubiera congelado.

La única forma en que tengo que dejar que se muestre la página de progreso antes de que ocurra el ExtractTemporaryFile es colocar un MsgBox antes de cualquier función de instalación. Pero incluso en este caso, cuando se inicia ExtractTemporaryFile, la animación de la barra de progreso se congela hasta que se hace ExtractTemporaryFile ...

Aquí está la parte del código que hace esto:

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;

Tenga en cuenta que ExtractTemporaryFile() se hace en cadaF_InstallTooln() función.

Otros forman parte de las Secciones de configuración y archivo que podrían ayudar:

[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

Aquí, la página PageInstallationPersonnalisee no se muestra hasta que se realiza el primer ExtractTemporaryFile ...

Soy consciente de queExtractTemporaryFile puede causar algún retraso enproceso de instalación, pero ¿por qué debería causar una congelación de Wizard?

Entonces mi pregunta es: en mi escenario, ¿hay alguna manera de forzar la actualización del asistente para que aparezca antes de cualquierExtractTemporaryFile procedimiento se inicia?

Respuestas a la pregunta(1)

Su respuesta a la pregunta