Dopo aver concluso la stesura di un programma e terminata la fase di debug quello che otteniamo non risulta essere direttamente commerciabile. Infatti, il frutto del nostro lavoro può essere un’applicazione, per esempio un driver per ambiente windows, o un’insieme di files che risultano di difficile utilizzo per un utente finale alle prese, per esempio, con un’eventuale installazione sul proprio computer.
Introduzione
Per dare un'impronta commerciale al nostro progetto dobbiamo confezionarlo, cioè impacchettarlo in maniera professionale per distribuirlo. In questo senso Inno Setup fa proprio a caso nostro: Inno Setup è infatti uno strumento che permette di rendere il nostro programma, sia esso un applicativo o un driver auto-installante per ambiente windows e, non trascurabile, ha il pregio di essere completamente libero (a questo riguardo è opportuno consultare la licenza d’uso).
CARATTERISTICHE PRINCIPALI
Inno Setup è un tool completamente libero e può essere utilizzato anche per applicazioni commerciali. Supporta tutte le versioni di windows e non richiede un particolare service pack. Sommariamente ricordiamo che:
- Oltre alla possibilità di permettere la suddivisione della vostra applicazione su diversi dischi (cosa però ormai non più interessante), Inno Setup consente la creazione di un unico eseguibile di installazione;
- Supporta l’opzione uninstall, per disinstallare la vostra applicazione dal PC;
- Inno Setup consente la possibilità, nella procedura di installazione, di modificare e/o aggiungere parametri al registro di windows e al file System.ini;
- Supporta, diversi linguaggi di installazione;
- Inno Setup permette la creazione di procedure protette di installazione consentendo l’inserimento di una password per condurre installazioni in forma criptata;
- Supporta diversi formati di file compressi.
Per generare il file di installazione è necessario scrivere un apposito script, che viene successivamente compilato per produrre il file da installare: Setup.exe. Lo script ha una estensione “.iss” ed è composto da una serie di istruzioni sotto varie sezioni (heading) racchiuse in parentesi quadre. Questi heading non compaiono nello script secondo un ordine alfabetico ma secondo l’ordine con cui vengono utilizzate. Certamente non tutte le sezioni previste da Inno Setup devono essere presenti, ma non possono mancare in ogni script gli heading “Setup e Files”.
UN SEMPLICE ESEMPIO
Il listato 1 mostra uno script perfettamente funzionante che si prefigge di installare sul personal computer il cross-compilatore per PowerPC.
[Setup] AppName=Embedded Toolkit PowerPC (ETK) AppVerName=powerpc version 0.9 DefaultDirName={pf}\powerpc DefaultGroupName=Embedded Toolkit PPC AlwaysCreateUninstallIcon=yes UninstallLogMode=overwrite WizardImageFile=dinosaur.bmp LicenseFile=license.txt [Files] Source: “c:\cy\tl\H\bin\*.exe “; DestDir: “c:\cy\tl\H\bin” ; Flags: confirmoverwrite Source: “c:\cy\tl\H\pe\bin\*.exe “; DestDir: “c:\cy\tl\H\pe\bin” ; Flags: confirmoverwrite Source: “c:\cy\tl\H\pe\include\*.h “; DestDir: “c:\cy\tl\H\pe\include “ ; Flags: confirmoverwrite Source: “c:\cy\tl\H\pe\lib\ldscripts\*.* “; DestDir: “c:\cy\\tl\H\pe\lib\ldscripts “ ; Flags: confirmoverwrite Source: “c:\cy\bin\cy1.dll”; DestDir: “c:\cy\tl\H\bin” ; Flags: confirmoverwrite Source: “c:\cy\bin\make.exe”; DestDir: “c:\cy\tl\H\bin” ; Flags: confirmoverwrite Source: “c:\cy\tl\H\lib\*.*“; DestDir: “c:\cy\tl\H\lib “ ; Flags: confirmoverwrite Source: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\*.*“; DestDir: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2 “ Source: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\ca\*.*“; DestDir: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\ca “ Source: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\include\*.*“; DestDir: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\include “ Source: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\lin\*.*“; DestDir: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\lin “ ; Flags: confirmoverwrite Source: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\le\*.*“; DestDir: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\le “ Source: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\le\ca\*.*“; DestDir: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\le\ca “ Source: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\nof\*.*“; DestDir: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\nof “ Source: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\nof\ca\*.*“; DestDir: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\nof\ca “ Source: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\nof\le\*.*“; DestDir: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\nof\le “ Source: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\nof\le\ca\*.*“; DestDir: “c:\cy\tl\H\lib\gcc-lib\pe\2.95.2\nof\le\ca “ Source: “c:\gnu\*.*“; DestDir: “c:\cy\gnu “ Source: “c:\inst_powerpc\flashYellow.bmp”; DestDir: “c:\cy\tl “ Source: “c:\inst_powerpc\setup.bat”; DestDir: “c:\cy\tl “ Source: “c:\gnu\gnu\*.*“; DestDir: “c:\cy\gnu\gnu “ Source: “c:\gnu\gnu\gdb\*.*“; DestDir: “c:\cy\gnu\gnu\gdb “ Source: “c:\gnu\gnu\gdb\icons\*.*“; DestDir: “c:\cy\gnu\gnu\gdb\icons “ Source: “c:\gnu\gnu\make\*.*“; DestDir: “c:\cy\gnu\gnu\make “ Source: “c:\gnu\gnu\toolkit\*.*“; DestDir: “c:\cy\gnu\gnu\toolkit “ Source: “Readme.txt”; DestDir: “c:\cy” ; Flags: isreadme Source: “Readme.txt”; DestDir: “c:\cy\work”
Listato 1 |
La sezione [Setup] sovrintende al controllo generale del programma e la maggior parte dei comandi previsti in questa sezione risultano opzionali. Alcuni comandi utilizzati sono riportati in tabella 1.
Nella sezione [Files] vengono identificati i files che devono essere copiati e in genere viene utilizzata la stessa notazione utilizzata sotto Dos. È possibile, mediante l’uso di particolari flag, controllare il processo di copia.Ciascuna linea presente in questa sezione ha il seguente formato:
Source: “SourceFilespec”;
DestDir: “TargetFilspec”;
Flags: FlagParameters;
Attribs: AttributeParameters
La tabella 2 riporta sommariamente la descrizione di ogni campo.
Il campo flag prevede un insieme molto vasto di possibilità ed è possibile disporre di opzioni multiple separate da una virgola. È possibile utilizzare ad esempio il flag confirmo-verwrite, che abilita la richiesta di conferma per ogni eventuale tentativo di sostituzione di un file. Su tutte le possibili scelte vi rimando alla documentazione del prodotto. Un’ultima considerazione: dal listato 1 troviamo le seguenti istruzioni:Source: “Readme.txt”; DestDir: “c:\cy” ; Flags: isreadme
Queste sono utili nel caso volessimo visualizzare, al termine della procedura, un file readme.txt. Nella procedura solo un file può essere isreadme.
CONCLUSIONE
Inno Setup è certamente un ottimo strumento per distribuire i propri prodotti attraverso la creazione di wizard di installazioni a costo zero.Tutta la documentazione è reperibile al sito www.jrsoftware.org, dove è anche possibile scaricare l’applicativo, per chi è interessato è anche possibile ottenere il sorgente completo, scritto in Delphi. Una volta scaricato e installato il prodotto, con l’ausilio della documentazione fornita, è relativamente facile costruirsi la propria installazione.
Davvero interessante. Vi posto un link in cui potete vedere come usare Inno Setup: https://www.youtube.com/watch?v=HnIgAvCTWKc