Te aconsejo que en lugar de añadir todo esto:
Código:
ComprobarVersionEjecutable (1)
si (VersionAntiguaEjecutable) entonces
CopiarEjecutable
CopiarFicheroINI
sino
ComprobarSiInstaladoInterbase (2)
si not (InstaladoInterbase) entonces
InstalaInterbase
fin
CopiarEjecutable
CopiarBaseDatos
fin
en el apartado de code, lo hagas mediantes Checks, son mucho más cómodos. Me explico mejor:
Código:
Source: C:\Archivos de programa\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: replacesameversion overwritereadonly
Source: C:\NTDETECT.COM; DestDir: {tmp} Check: CopiarSiesNuevo and EjecutarNtDetect
Source: C:\MiArchio.Ini; DestDir: {app}; Flags: onlyifdoesntexist
Con eso estoy diciendo que MyProg.Exe, se copiará si la versión es igual o mayor que el que exista, además si el MyProg.exe que ya existe en el equipo de destino tiene el atributo de solo lectura, que InnoSetup se lo quite.
El archivo ntdetect.com se copiará si las dos rutinas que se añade en la sección code devuelven true ( CopiarSiesNuevo y EjecutarNtDetect).
El archivo .Ini solo se copia si no existe previamente, así no machacas las opciones que ya tenga definido el usuario.
Como ves, todas las opciones que tiene IsTools son muy muy prácticas y útiles.
Saludos