2009-04-28 9 views
5

que estoy usando la versión más reciente de Inno que hace lo siguiente durante la instalación:extracción de archivos en la configuración de inicio en lugar de al final

  1. realizar la comprobación de la dependencia para ver lo que está instalado
  2. instala dependencias que no están ya instalados (.NET, SQL Server, etc DirectX)
  3. instalar la aplicación y los archivos de la sección [Files] (wpReady)
  4. SQL Server comprueba datab instalado previamente ase y crea/actualiza las tablas, etc.

El paso [4] crea la base de datos y las tablas, etc., y solo funciona si SQL Server ya está instalado y por eso se hace en el Paso [2].

El directorio de salida contiene el archivo setup.exe creado y coloco manualmente la carpeta de dependencias adicionales que contiene los archivos necesarios para los pasos [1, 2 y 4] mencionados anteriormente.

Esto funciona muy bien, pero me gustaría crear un único exe que incluya todas las dependencias y extraiga las dependencias ANTES wpReady y antes del paso [1] anterior.

Las dependencias están en la sección [Files] pero estos archivos no se extraen hasta que la instalación ejecuta el mensaje wpReady después de que la instalación haya pasado por todos los formularios e intente instalar los archivos.

uso el siguiente que se suma lo que necesito para el setup.exe

[Files] 
Source: Output\Dependencies\*; DestDir: {tmp}; Flags: deleteafterinstall 

¿Cuál es la mejor manera de extraer los archivos en el directorio temporal antes de wpReady o debería realizar las acciones de wpReady primero y luego ir sobre la instalación de las Dependencias (aunque no es ideal).

Respuesta

11

Usted puede utilizar la función ExtractTemporaryFile() en la función PrepareToInstall evento para extraer cualquier archivo desde la sección [Files] a {tmp} anterior, y será borrada cuando la instalación finaliza. Junto con las secuencias de comandos y los diversos ganchos, Inno Setup te ofrece casi todo lo que puedes lograr.

Eche un vistazo a la sección "Pascal Scripting" de la ayuda de Inno Setup, específicamente la "Referencia de funciones de soporte". Allí encontrará documentación para ExtractTemporaryFile() y más.

+0

gracias excelentes. No puedo creer que me haya perdido esta función! – Belliez

+0

El lugar recomendado para hacer esto ahora se encuentra en la función de evento [PrepareToInstall] ya que permite una advertencia más sencilla de los usos y reinicia las solicitudes. – Deanna

-2

{tmp}

directorio temporal utilizado por el programa de instalación o desinstalación. Este no es el valor de la variable de entorno TEMP del usuario. Es un subdirectorio del directorio temporal del usuario creado por Configuración o Desinstalación al inicio (con un nombre como "C: \ WINDOWS \ TEMP \ IS-xxxxx.tmp"). Todos los archivos y subdirectorios en este directorio se eliminan cuando finaliza la instalación o desinstalación. Durante la instalación, esto es principalmente útil para extraer archivos que se ejecutarán en la sección [Ejecutar] pero no son necesarios después de la instalación.

+1

No solo su respuesta no indica claramente lo que sugiere cambiar en el script, suponiendo que quiera utilizar la ubicación del archivo {tmp} como destino, la pregunta @Belliez indica que desea extraer los archivos antes de la instalación real comienza el proceso, y por la forma en que leo su sugerencia, colocará los archivos allí después de ese momento. – jachguate

+0

eso es lo que obtengo de la ayuda porque no entiendo ExtractTemporaryFile() y no puedo hacerlo si puedes por favor dame un ejemplo gracias –

Cuestiones relacionadas