PDA

Ver la Versión Completa : Generar instalador para aplicacion en delphi


TheRainmaker
06-02-2010, 22:55:59
Saludos a todos!

Estoy desarrollando como proyecto de grado una interfaz de telemetria en Delphi, y necesito generar un instalador de la aplicacion pero cada vez que intento ejecutar la aplicacion me dice "Exception EOleSysError in module Telemetria.exe at 000640A5. Error catastrofico"

De verdad tengo tiempo programando pero siempre era software que no iba a distribuir, y no tengo idea que pueda estar ocurriendo. Estoy utilizando el JackHammer Installer pero estoy descargando el InstallShield para probar. Si tienen alguna idea de como solucionar el error, se los agradeceria!

Gracias!

cocute
06-02-2010, 23:56:53
esteestá bién: Setup Factory (http://www.indigorose.com/),
es de pago, pero el InstallShield también lo es

Algunos más baratos:
http://www.rnlogic.com/installsimple.htm
http://www.dev4pc.com/index.html

Y aqui tienes este que tiene version gratuita que tiene buena pinta, simple, efectivo
y además lo puedes poner en español tanto el programa en si como el fichero creado:
http://www.createinstall.com/cifree/index.htm

TheRainmaker
07-02-2010, 07:20:37
Gracias por la respuesta! Pero ya consegui la licencia del InstallShield!! Lo que realmente me preocupa es ese "Error Catastrófico"!

Me ocurre exactamente lo mismo si solo copio el ejecutable en otra maquina y lo ejecuto!

Si alguien puede ayudarme de verdad se lo agradeceria!

Gracias!

droguerman
07-02-2010, 10:15:42
Ese error va ligado al uso de componentes OCX, en otras palabras debes registrar las librerías OCX que vayas a utilizar (controles ActiveX o quizás estás usando OLE Automation).

Respecto a instaladores yo prefiero NSIS, te demora uno o dos días aprenderlo pero te permite hacer cualquier cosa.

cocute
07-02-2010, 12:33:25
Respecto a instaladores yo prefiero NSIS, te demora uno o dos días aprenderlo pero te permite hacer cualquier cosa.

Si la verdad es que el NSIS es gratis y va muy bien y se puede hacer de todo, la única pega es que no es visual como los otros y tienes que crearlo todo por código lo cual cuesta más.
Pero una vez que te creas una plantilla a tu gusto me imagino que es rápido de usar.
Además vienen un monton de plantillas hechas ya.

rretamar
07-02-2010, 15:49:04
Uso el instalador INNO SETUP. En realidad no es visual, sino que es un compilador de instaladores que genera el ejecutable a partir de un archivo de texto. Utiliza scripts en Pascal y es muy potente. Está bien documentado, es software libre y tiene varias herramientas "accesorias" como la que comento a continuación:

Para facilitar más las cosas, uso la herramienta ISTOOL, que en forma "casi" visual me permite crear el instalador a golpe de ratón, generando el script automáticamente. Como dicen en España, es "una gozada".

Saludos !

Lord Delfos
07-02-2010, 16:24:49
Pues, yo como rretamar, te recomiendo el Inno Setup. Es muy sencillo de usar para las cosas sencillas, y más complicado para las cosas complicadas. Como tiene que ser.

He aquí un ejemplo de instalador que, entre otras cosas, registra OCX (ComCtrl32):


; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES!

[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
Compression=lzma
SolidCompression=yes
OutputDir=userdocs:Inno Setup Examples Output

[Files]
Source: "MyProg.exe"; DestDir: "{app}"
Source: "MyProg.chm"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
Source: "ComCtl32.ocx"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: restartreplace sharedfile regserver

[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"

TheRainmaker
07-02-2010, 22:29:35
Saludos a todos! Gracias de verdad por sus respuestas!!

Ahora, eso de registrar OCX o ActiveX... en efecto estoy utilizando unos componentes IOCOMP para mostrar unas variables en pantalla... me podrian explicar un poco mas eso de registrar??

Gracias por su prontas respuestas!!

droguerman
07-02-2010, 22:36:17
Registrar, es hacer disponible tu componente OCX o DLL para otras aplicaciones, es decir, indicamos que tu OCX o DLL es un componente compartido del sistema, puedes registrar manualmente en una máquina usando este comando vía CMD:

REGSVR32 c:\ruta_completa_OCX

TheRainmaker
08-02-2010, 00:20:26
Nada! Todavia con el mismo problema!

Generé el instalador con el InstallShield 2010, me dijo que tenia dependencias con Microsoft OLE, lo seleccione para que lo asociara pero nada... todavia al ejecutar me sigue enviando el mismo mensaje de "Exception EOleSysError in module Telemetria.exe at 000640A5. Error catastrófico"

He buscado por la red pero parece que a nadie le ha dado ese error antes!!

Ayuda !

droguerman
08-02-2010, 01:29:16
Deberías probar en una máquina a depurar en una máquina que sólo tenga DELPHI, o usar el dependency Walker para ver que archivo hace falta

TheRainmaker
08-02-2010, 03:08:02
Instale el dependency walker en la maquina donde no puedo ejecutar el programa que desarrolle y esta dando error con estas 3 librerias dinamicas: DWMAPI.DLL MPR.DLL SHLWAPI.DLL. La primera da Missing Module. Y las otras 2 dan Delay-load module warning.

Bien, intente copiarlas donde esta el ejecutable y no funciona... sigue dando el mismo error!

Creo que me quedare sin cabellos! =(

TheRainmaker
08-02-2010, 05:29:03
Listo! Solucionado!!
El Inno es realmente una herramienta poderosa! Gracias por todo amigos!!

AzidRain
08-02-2010, 22:22:59
Verdad que sí....??? Que necesidad de andar consiguiendo "licencias" cuando lo puedes hacer todo de manera correcta y legal. Aquí en el changarro Inno es nuestro instalador oficial y no por no querer pagar una licencia comercial, sino que para lo que requerimos nos basta y sobra con él.

Lord Delfos
09-02-2010, 03:53:13
Listo! Solucionado!!
El Inno es realmente una herramienta poderosa! Gracias por todo amigos!!

Y... No quiero decir "¡Yo te dije!", pero... ¡Yo te dije! :D