Domanda

Sto creando un'applicazione RCP Eclipse.

Sto seguendo i consigli di Joel nel seguente articolo " Le build giornaliere sono i tuoi amici " ;:

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

Quindi, ho scritto un bel script di build che crea un prodotto RCP Eclipse ed esegue test unitari sul codice. Tutti i risultati vengono quindi distribuiti all'elenco degli sviluppatori (dopo alcuni brontolii). Ora il mio prossimo passo, voglio che crei il pacchetto di installazione che normalmente creo manualmente usando il compilatore di installazione inno.

La domanda è: come potrei aggirare la creazione automatica di questo pacchetto? Immagino di poter generare automaticamente il file di installazione inno da ant, e quindi invocare il compilatore dalla riga di comando, ma non so se sia possibile.

Qualche consiglio per questa attività? Forse qualche altra applicazione di installazione che può essere utilizzata da formica?

È stato utile?

Soluzione

certo che è facile, il progetto Inno è un semplice file di testo, quindi puoi anche modificare facilmente lo script setupper con ant, tuttavia ti consiglio di creare un piccolo file include separato dal tuo script. Puoi avere negozio lì " variabili " come la versione + il numero di build che mostri all'inizio dell'installazione.

metti questa linea sul tuo setupper:

#include "settings.txt"

e make settings.txt ha qualcosa del genere

#define myver=xxx.xxx
#define tags

ora non è necessario toccare il codice setupper effettivo dallo script build.

di seguito è un frammento del mio script di compilazione per compilare il setupper. devi eseguire il file batch da formica in questo modo:

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

esempio 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

Altri suggerimenti

Un altro bel trucco nell'automazione della costruzione dell'installer consiste nell'utilizzare la macro del preprocessore GetFileVersion (ISPP). In questo modo non dovrai duplicare i numeri di versione dei tuoi file (binari) in formato hardcoded (come in settings.txt di Tom) - il compilatore del programma di installazione lo leggerà semplicemente dalle risorse della versione dei file che modo. Per esempio:.

#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

Inoltre, puoi inoltrare simboli al compilatore tramite l'opzione della riga di comando / d , ad es .:

iscc.exe /dSpecialEdition ...

e successivamente utilizzali in ifdef per creare diversi tipi di programma di installazione (lo stupido esempio segue):

[Registry]
#ifdef SpecialEdition
Root: HKLM; Subkey: Software\MyCompany\MyApp; ValueName: SpecialEdition; ValueType: dword; ValueData: 1 ...
#endif
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top