Ver Mensaje Individual
  #9  
Antiguo 18-08-2008
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Reputación: 21
mlara Va por buen camino
Pues la cosa va así:

Comment: Excelente el Inno Setup, la verdad no lo había probado, pero es muy bueno.
  1. Usando InnoSetup incluyo el instalador de la última versión de Firebird 2.1, la 2.1.1.17910.
  2. Luego en la sección de código escribo esta función, la cual permite instalar silenciosamente Firebird, siempre y cuando el usuario haya seleccionado la instalación del servidor, de otra manera se instalará el cliente.

    Código Delphi [-]
    function NextButtonClick(CurPageID: Integer): Boolean;
    var
      ResultCode: Integer;
    begin
      case CurPageID of
        wpReady:
          begin
            ExtractTemporaryFile('Firebird-2.1.1.17910-0_Win32.exe');
    
            // Instalación del servidor
            if IsComponentSelected('Firebird_2_1') then begin
              MsgBox('A continuación se instalará el motor de bases de datos Firebird 2.1', mbInformation, MB_OK);
              if not Exec(ExpandConstant('{tmp}\Firebird-2.1.1.17910-0_Win32.exe'),
                     '/SILENT /LOG /NOCANCEL /NOICONS /TYPE=CustomInstall /COMPONENTS="ServerComponent,ServerComponent\SuperServerComponent,DevAdminComponent,ClientComponent" /MERGETASKS="CopyFbClientToSysTask"',
                     '',
                     SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then
                MsgBox('No se pudo realizar la instalación de Firebird 2.1.'#13#13#10'Mensaje de error del sistema'#13#13#10+SysErrorMessage(ResultCode)+'.', mbError, MB_OK)
              else begin
                // Hacer algo después de la instalación...
                // ...
              end
            end
    
            // Instalación del cliente
            else if IsComponentSelected('Archivos_Cliente') then begin
              MsgBox('A continuación se instalará cliente del motor bases de datos Firebird 2.1', mbInformation, MB_OK);
              if not Exec(ExpandConstant('{tmp}\Firebird-2.1.1.17910-0_Win32.exe'),
                     '/SILENT /LOG /NOCANCEL /NOICONS /TYPE=ClientInstall',
                     '',
                     SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then
                MsgBox('No se pudo realizar la instalación del cliente Firebird 2.1.'#13#13#10'Mensaje de error del sistema'#13#13#10+SysErrorMessage(ResultCode)+'.', mbError, MB_OK)
            end
          end
      end;
    
      Result := True
    end;

Observen ustedes que al ejecutar el instalador de Firebird la línea de comandos es indispensable, pues de esta manera puedo instalarlo de la manera más adecuada.

Hay que tener en cuenta el nombre de los tipos de instalación, y si se quiere de los componentes y tareas de la instalación, usados para crear el instalador de Firebird. Estos nombres se pueden ver en el script de Inno Setup (FirebirdInstall_20.iss) usado para instalar Firebird. Este archivo se encuentra dentro del archivo Firebird-2.1.1.17910-0.tar.bz2, el cual contiene los archivos fuente de Firebird.

Nota. El instalador también podría ejecutarse sin necesidad de adicionarlo al Setup.

__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.

Última edición por mlara fecha: 18-08-2008 a las 23:22:41.
Responder Con Cita