Capitolo 34 Inno Setup

 

34.1 Download di Inno Setup

                                                                                                                                                                                               

Inno Setup, giunto alla versione 5, è un installer per le proprie applicazioni completamente free­ware. Usato da molteplici programmatori per distribuire pacchetti di installazione delle loro applicazioni, è scaricabile dal sito del suo ideatore Jor­dan Rus­sell all'indirizzo :

 

                                           http://www.jrsoftware.org/

 

Il download fornisce un eseguibile che permette l’installazione del Pacchetto Inno Setup.

 

Questo Pacchetto permette di lavorare con un buon Wizard, facile da usare e per cui e’ possibile trovare in rete vari Tutorials. Il Wizard produce un File “ISS” che, tramite compilazione del nostro progetto, produce a sua volta un eseguibile “.EXE” del nostro progetto, cio’ che e’ appunto il file di installazione desiderato.

 

In alternativa al Wizard possiamo usare direttamente il Compiler Inno Setup ed e’ a questo modo di lavorare che dedicheremo i paragrafi seguenti. Per operare  e’ necessario scaricare anche il Pacchetto ausiliario ISTool all’indirizzo:

 

                                  http://sourceforge.net/projects/istool/

 

34.2 Preparazione della Cartella Inno Setup

 

Per procedere all’installazione della nostra Procedura “Magazzino” con Inno Setup, conviene per prima cosa creare una Cartella di lavoro in cui conservare i Files Inno e in particolare il File “.ISS” che tramite compilazione produrra’ il file  eseguibile di installazione

Chiamiamo per esempio questa cartella con il nome “MagSetup”.

 

Per vedere l’Esercizio risolto si faccia riferimento come al solito alla Cartella: SOLUZIONE_31_ADO_InnoSetup

 

All’interno della Cartella MagSetup si crei una serie di Sottocartelle:

 

- La prima con nome, ad esempio, “Varie”. In questa Sottocartella troveranno posto alcuni Files ausiliari da utilizzare durante l’installazione. Nel nostro caso aggiungiamo:

-        una Icona a nome MAG.ICO che vogliamo far comparire nell’elenco dei Programmi del Computer.

-        un File “AUTORI.TXT”  che contiene eventuali informazioni da mostrare durante la fase di installazione.

-        una Immagine, “Cavallo.BMP” che deve comparire a sinistra della maschera di installazione al posto dell’immagine di default Inno Setup.

-        Una Icona DISI.ICO che vogliamo far  comparire nell’Elenco come icona di disinstallazione.

 

- In secondo luogo, all’interno della Cartella MagSetup si copi integralmente la Sottocartella “Support” creata dall’Utility VB6 nell’esercizio 30, precisamente:

C:\GRIGLIE_ADO\SOLUZIONE_30_ADO_Distribuzione\Magazzino\PROGR\Support.

 

- Si copino poi la Cartelle MAG.WIN, MAG.MIA e MAGDATI.WIN utilizzando quelle in C:\GRIGLIE_ADO\SOLUZIONE_30_ADO_Distribuzione\Magazzino

 

34.3 Preparazione del File ISS

 

Prepariamo ora il File “ISS”. Si lanci ISTool Inno,  si scelga l’Opzione di Menu: “File/Apri” e si carichi il File LST che avevamo preparato nell’Esercizio precedente. Il File SETUP.LST si trova anch’esso  nella cartella: GRIGLIE_ADO\SOLUZIONE_30_ADO_Distribuzione\Magazzino\PROGR

 

L’utility ISTool carica il “File LST” e gli conferisce la forma di File “ISS”. Si salvi allora questo file con nome, ad esempio, “MagSetup.iss” in cartella SOLUZIONE_31_ADO_InnoSetup\MagSetup.

 

Procediamo ora a varie operazioni di completamento del File “ISS”.

 

Per prima cosa si modifica la sezione [Setup] come segue:

 

[Setup]

; NOTE: The value of AppId uniquely identifies this application.

; Do not use the same AppId value in installers for other applications.

; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)

AppId={{4AB2C7BC-8100-4670-AA3E-B145E8E85DE3}

AppName=Procedura Magazzino

AppVersion=1.0

;AppVerName=Magazzino 1.0

AppPublisher=Nome Autore della Procedura

DefaultDirName=C:\MAG.WIN

DisableDirPage=yes

DefaultGroupName=Magazzino

DisableProgramGroupPage=yes

Compression=lzma

SolidCompression=yes

;

OutputBaseFilename=MagSetup

SetupIconFile="Varie\MAG.ICO"

WizardImageFile="Varie\Cavallo.BMP"

InfoBeforeFile=Varie\Autori.txt

 

Le modifiche apportate servono a far comparire in fase di installazione il File “Autori.txt” in cui si e’ scritto un testo ritenuto opportuno e a conferire al Form di lancio dell’installazione una personalizzazione estetica con la presentazione sul lato sinistro dell’immagine “Cavallo.bmp” al posto dell’immagine di defaut di InnoSetup.

 

Si aggiungano ora due nuove sezioni:

 

[Languages]

Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"

 

[Tasks]

Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

 

 A questo punto e’ necessario dividere la sezione [Files] in tre parti.

La prima:

-        definisce il file di lancio: “Fatture.exe” con il suo percorso.

-        Contiene l’istruzione di copiare in C: l’intera Cartella “MAG.MIA”.

-        Idem per la Cartella “MAGDATI.WIN”

-        Idem per la Cartella MAG.WIN.

 

Ecco il testo:

 

[Files]

Source: MAG.WIN\Fatture.exe"; DestDir: "{app}"; Flags: ignoreversion

Source: "MAG.MIA\*"; DestDir: "C:\MAG.MIA"; Flags: ignoreversion recursesubdirs createallsubdirs

Source: "MAGDATI.WIN\*"; DestDir: "C:\MAGDATI.WIN"; Flags: ignoreversion recursesubdirs createallsubdirs

Source: "MAG.WIN\*"; DestDir: "C:\MAG.WIN"; Flags: ignoreversion recursesubdirs createallsubdirs

 

Si passa ora alla seconda parte, a stesura fissa cioe’ identica per qualunque Procedura,  elenca i files di Runtime presenti nella Cartella “Support”.

 

;Visual Basic

;       Added "OnlyBelowVersion: 0,6" parameters to each line to prevent Setup from trying to install the files on Windows Vista.

;Source: "Support\VB6STKIT.DLL"; DestDir: "{sys}"; OnlyBelowVersion: 0,6 ;CopyMode: alwaysskipifsameorolder

Source: Support\COMCAT.DLL; DestDir: {sys};  OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile regserver

Source: Support\MSVCRT40.DLL; DestDir: {sys};  OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile

Source: Support\OLEPRO32.DLL; DestDir: {sys};   OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile regserver

Source: Support\VB6IT.DLL; DestDir: {sys};   OnlyBelowVersion: 0,6; Flags: promptifolder sharedfile

Source: Support\STDOLE2.TLB; DestDir: {sys};  OnlyBelowVersion: 0,6;  Flags: restartreplace uninsneveruninstall sharedfile regtypelib

Source: Support\ASYCFILT.DLL; DestDir: {sys};   OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile

Source: Support\OLEAUT32.DLL; DestDir: {sys};  OnlyBelowVersion: 0,6;  Flags: restartreplace uninsneveruninstall sharedfile regserver

;Fine file da Visual Basic

 

La terza parte dei [Files] elenca le DLL e gli OCX come da File SETUP.LST. L’elenco e’ pero’ modificato in modo che “Source” richiami i files dalla Cartella “Support”. L’operazione di modifica si esegue usando il comando di menu del Compiler “Edit/Replace”.

 

; Librerie

Source: "Support\MDAC_TYP.EXE"; DestDir: {app}; Flags: promptifolder

Source: "Support\mfc40loc.dll"; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile

Source: "Support\MFC40.dll"; DestDir: {sys}; Flags: promptifolder regserver sharedfile

Source: "Support\SPIN32.ocx"; DestDir: {sys}; Flags: promptifolder regserver sharedfile

Source: "Support\THREED32.ocx"; DestDir: {sys}; Flags: promptifolder regserver sharedfile

Source: "Support\DBGRDIT.dll"; DestDir: {sys}; Flags: promptifolder sharedfile

Source: "Support\DBGRID32.ocx"; DestDir: {sys}; Flags: promptifolder regserver sharedfile

Source: "Support\DATGDIT.dll"; DestDir: {sys}; Flags: promptifolder sharedfile

Source: "Support\STDFTIT.dll"; DestDir: {sys}; Flags: promptifolder sharedfile

Source: "Support\MSSTDFMT.dll"; DestDir: {sys}; Flags: promptifolder regserver sharedfile

Source: "Support\MSDATGRD.ocx"; DestDir: {sys}; Flags: promptifolder regserver sharedfile

Source: "Support\VB5DB.dll"; DestDir: {sys}; Flags: promptifolder sharedfile

Source: "Support\msjtes40.dll"; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile regserver

Source: "Support\msrepl40.dll"; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile

Source: "Support\msrd3x40.dll"; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile regserver

Source: "Support\msrd2x40.dll"; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile regserver

Source: "Support\mswdat10.dll"; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile

Source: "Support\mswstr10.dll"; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile

Source: "Support\expsrv.dll"; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile

Source: "Support\vbajet32.dll"; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile

Source: "Support\msjint40.dll"; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile

Source: "Support\msjter40.dll"; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile

Source: "Support\msjet40.dll"; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile regserver

Source: "Support\dao360.dll"; DestDir: {dao}; Flags: promptifolder regserver sharedfile

 

A questo punto si modifica la sezione [Icons] come segue:

 

[Icons]

Name: "{group}\Fatture"; Filename: "{app}\fatture.exe"

Name: "{group}\Disinstalla Magazzino"; Filename: "{uninstallexe}" ;IconFilename: "C:\Disi.ico"

Name: "{commondesktop}\Fatture"; Filename: "{app}\Fatture.exe"; Tasks: desktopicon

 

Si realizza cosi’ la creazione di un menu di disinstallazione che compare sotto l’icona da noi prescelta. Si noti che la per la Directory dell’Icona si richiede la definizione dettagliata del suo percorso. Per non sbagliare, si metta l’Icona in C: e si definisca il percorso “C:\Disi.ico”

 

L’ultima operazione da fare e quella di aggiungere una nuova sezione per permettere il lancio della Procedura in automatico subito dopo la fine della compilazione:

 

[Run]

Filename: "{app}\fatture.exe"; Description: "{cm:LaunchProgram,Magazzino}"; Flags: nowait postinstall skipifsilent

 

 

34.4 Compilazione e Creazione dell’Eseguibile

 

Terminata la preparazione del File ISS, si procede al suo salvataggio per permettere successivi ed ulteriori interventi e quindi si procede alla compilazione. Questa operazione crea automaticamente una Sottocartella con nome “Output” all’interno della Cartella “MagSetup” e colloca in questa nuova Cartella l’eseguibile  “MagSetup.exe” , File stand-alone che puo’ essere trasportato ed utilizzato per effettuare l’installazione della Procedura “Magazzino” su un qualunque Computer.

 

L’eseguibile e’ il solo file necessario per l’installazione  e contiene in modo compresso tutte le Directories, i Database e gli eseguibili necessari alla Procedura.

 

Il lancio dell’eseguibile crea una Icona sul Desktop e aggiunge nella Sezione “Tutti i Programmi” del Computer un Menu “Magazzino” con due sottomenu: “Fatture” e “Disinstalla”.

 

 

 

Fine del Capitolo 34 Inno Setup