2012-01-07 11 views
8

Solo estaba tratando de hacer un instalador. ¿Cuál es la mejor manera de gestionar el almacenamiento de archivos en el archivo exe y luego extraerlos al directorio de instalación?Creando un instalador

Por ejemplo, tengo mi archivo installer.exe, quiero que contiene lo siguiente:

  • archivo ejecutable principal
  • 3 x * .db archivos

Al seleccionar la instalar directorio y hacer clic en instalar, deseo que los archivos contenidos se extraigan al directorio de instalación elegido, sin embargo, no puedo encontrar la manera de almacenar los archivos que necesito extraer dentro del instalador.

+1

¿Por qué no utilizar un archivo de instalación o extracción automática estándar? – CodesInChaos

+10

La mejor manera es usar una herramienta de instalación estándar como, por ejemplo, InnoSetup. Es muy poco probable que valga la pena escribir esto usted mismo. –

+0

+1 Estoy completamente de acuerdo con CodeInChaos y David en este caso, en base a mis propias experiencias pasadas. Es demasiado problema de lo que vale la pena hacer uno por su cuenta. No es imposible de hacer, pero hay muchas cosas que debes manejar como permisos, asociaciones de archivos, empacar/extraer archivos, registro, etc. Como David sugirió, usa InnoSetup, te ahorrará mucho dolor en el largo plazo, confía en yo. –

Respuesta

14

Inno Setup es interesante. Este es un proyecto enorme, con muchas funciones (incluido el lenguaje de scripts y los complementos), y está codificado en Delphi.

Pero eche un vistazo a NSIS installer. No está escrito en Delphi, pero es mucho más ligero. Creando un archivo .ini simple y has hecho tu instalador completo. Vea, por ejemplo, cómo fue fácil crear un instalador para our small Secure NotePad tool, muy similar a su necesidad.

Utilizo para crear instaladores personalizados en código Delphi. En algunos casos, si no tiene que usar muchas funciones pero necesita reutilizar algún código existente, podría tener sentido.

Para ello, utilizo dos de nuestras unidades de Open Source:

  • Nuestra PasZip unit es capaz de crear un stand-alone unzipper, directamente desde el exe - ver el código de ejemplo;
  • Nuestros LVCL classes que son capaces de crear ejecutables muy pequeños.

último consejo: No coloque el exe con upx u otros envasadores, ya que tiende a crear falsos positivos asociados a los ejecutables de Delphi con algunos programas antivirus.

+0

No se ve tan mal, voy a echarle un vistazo gracias. – MrDKOz

+0

Consulte RAD & Installer (http://www.rad-installer.com) que es la extensión Inno Setup para Delphi/C++ Builder. – Slappy

2

Utilizamos Setup Factory. Es simple de aprender y usar, y se integra con nuestro proceso de compilación automatizado utilizando Final Builder.

Setup Factory