Pregunta

Estoy creando una aplicación de Eclipse RCP.

Sigo los consejos de Joel en el siguiente artículo " Daily Builds are your friend " ;:

http://www.joelonsoftware.com/articles/fog0000000023.html

Por lo tanto, he escrito un buen script de compilación que crea un producto RCP de Eclipse y que ejecuta pruebas unitarias en el código. Todos los resultados se distribuyen luego a la lista del desarrollador (después de algunas quejas). Ahora, mi próximo paso, quiero que cree el paquete de instalación que normalmente creo manualmente usando el compilador de instalación inno.

La pregunta es, ¿cómo me las arreglaría para crear este paquete automáticamente? Supongo que puedo generar el archivo inno setup automáticamente desde ant y luego invocar el compilador desde la línea de comandos, pero no sé si esto es posible.

¿Algún consejo para esta tarea? Tal vez cualquier otra aplicación de configuración que pueda ser usada desde ant?

¿Fue útil?

Solución

seguro que es fácil, el proyecto Inno es un archivo de texto plano, por lo que incluso puede editar el script setupper fácilmente por ant, sin embargo, le recomendaría que cree un archivo de inclusión pequeño por separado. Puedes tener la tienda allí " variables " como la versión + número de compilación que se muestra al comienzo de la configuración.

ponga esta línea en su instalador:

#include "settings.txt"

y make settings.txt tiene algo como esto

#define myver=xxx.xxx
#define tags

ahora no necesita tocar el código de configuración real del script de compilación.

a continuación hay un fragmento de mi script de compilación para compilar el instalador. necesitas ejecutar un archivo por lotes desde ant como este:

<exec dir="." executable="cmd" os="Windows NT">
  <arg line="/c build.bat"/>
</exec>

muestra batch build.bat:

set isxpath="c:\program files\inno setup 5"
set isx=%isxpath%\iscc.exe
set iwz=myproj.iss
if not exist %isx% set errormsg=%isx% not found && goto errorhandler
%isx% "%iwz%" /O"%buildpath%" /F"MySetupper.exe" >>%logfile%
goto :eof

Otros consejos

Otro buen truco para automatizar la construcción de instaladores es utilizar la macro del preprocesador GetFileVersion (ISPP). De esa manera, no tendrá que duplicar los números de versión de sus archivos (binarios) en forma codificada (como en settings.txt de Tom), el compilador del instalador simplemente lo leerá de los recursos de versión de los archivos que camino. Por ejemplo:

#define AppName "My App"
#define SrcApp "MyApp.exe"
#define FileVerStr GetFileVersion(SrcApp)
#define StripBuild(str VerStr) Copy(VerStr, 1, RPos(".", VerStr)-1)
#define AppVerStr StripBuild(FileVerStr)

[Setup]
AppName={#AppName}
AppVersion={#AppVerStr}
AppVerName={#AppName} {#AppVerStr}
UninstallDisplayName={#AppName} {#AppVerStr}
VersionInfoVersion={#FileVerStr}
VersionInfoTextVersion={#AppVerStr}
OutputBaseFilename=MyApp-{#FileVerStr}-setup

Además, puede reenviar símbolos al compilador a través del interruptor de línea de comando / d , por ejemplo:

iscc.exe /dSpecialEdition ...

y luego use estos en ifdef s para crear diferentes tipos de instaladores (a continuación se muestra un estúpido ejemplo):

[Registry]
#ifdef SpecialEdition
Root: HKLM; Subkey: Software\MyCompany\MyApp; ValueName: SpecialEdition; ValueType: dword; ValueData: 1 ...
#endif
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top