Una delle cose che spesso ci capita di fare su Windows è fare un programma di setup, dovendo crearne uno per la mia applicazione ho iniziato a guardare in giro per vedere se far spendere dei soldi all'azienda in un tool per creare setup e devo dire che i risultati sono stati abbastanza soprendenti.
Perchè ho avuto una bella sorpresa: ci sono tool open source veramente notevoli e la necessità, come c'era un tempo, di usare per forza programmi commerciali come InstallShield si è ridotta di molto (o anche annullata del tutto visto che Microsoft stessa usa un componente Open Source per fare i setup dei suoi programmi di punta).
I tool che ho provato quindi sono due, entrambi Open Source, NullSoft Install, nato dai creatori ri WinAmp e che attualmente vive di vita propria (ed usato, ad esempio, per il setup di Firefox e Wix, il compilatore di file msi rilasciato in Open Source da Microsoft e con cui sono fatti anche i setup di SQL Server 2005 ed Office 2007 (cfr. per info le pagine relative su Wikipedia: http://en.wikipedia.org/wiki/NSIS e http://en.wikipedia.org/wiki/WiX)
NullSoft Installer: http://nsis.sourceforge.net/Main_Page
E' un tool relativamente semplice che ha dalla sua un pregio enorme: in accoppiata con NIS Edit (http://hmne.sourceforge.net/) ed il suo wizard ha la capacità di generare un setup "semplice" (ovvero di quelli che copiano solo i file) in veramente 3 minuti. Questo suo grande pregio è però anche il suo difetto perchè tante cose non si riescono a fare o comunque comportano la scrittura di DLL. L'altro grande difetto è che genera dei file eseguibili e non dei file Msi per MS Installer. Non mi è piaciuta neppure la complessità necessaria per modificare l'interfaccia grafica del setup anche solo per aggiungere qualche logo personalizzato.
Wix: http://wix.sourceforge.net/
Questo è il tool che ho deciso di utilizzare, sostanzialmente per due motivi, il primo è che genera file Msi (che è un requisito da parte dei nostri clienti), il secondo è che essendo fatto da Microsoft è di una potenza inaudita (ha tutto il necessario per interagire con tutte le feature di un server 2003 come ad esempio creare siti web, application pool e così via). La difficoltà (chiaramente spiegata anche nell'ottimo tutorial che si trova a http://www.tramontana.co.hu/wix/) è che non è assolutamente un tool semplice.
Dopo aver perso circa 3 o 4 ore a lavorare cercando di utilizzare il tool di editing WixEdit (http://wixedit.sourceforge.net/) ed avendo combattuto con il setup ed i template ed avendo ottenuto finalmente un buon risultato solo mettendomi lì a fare il file di configurazione manualmente mi sento di darvi alcuni suggerimenti se deciderete di seguire la strada di Wix:
1) Wix e l'MSI installer in generale non sono un oggetto per i deboli, per coloro che sono abituati ai wizard o per quelli che vogliono fare i setup a colpi di Drag&Drop
2) Fate il tutorial indicato poco sopra come primissima cosa. E' infatti fondamentale, per riuscire a lavorare con Wix, capire la logica ed i concetti che ci stanno dietro. Fatto questo poi diventa possibile utilizzare anche tool di design come WixEdit per creare in modo facile le form del vostro setup, ma se prima non capite la struttura del file Xml e come sono incastrati i vari pezzi diventerete matti
3) Dalla build scaricate ed installate Votive, è il pezzo che contiene tutto, sia i tool di compilazione dei setup sia gli addin per Visual Studio (2003 e 2005) che vi permetteranno di creare e compilare i vostri progetti di setup dentro Visual Studio
4) Vi consiglio di fare tutto il tutorial ed il vostro primo setup utilizzando la versione 2.0 di Wix e di Votive, in primo luogo perchè il tutorial è fatto per la versione 2.0 ed in secondo luogo perchè la documentazione della release 3.0 è abbastanza indietro. Una volta fatta esperienza con la 2.0 passare alla 3.0 sarà molto più facile e le lacune della documentazione diventano meno importanti
Last but not least il consiglio più importante: non tenetevi il setup alla fine del tutto. Se volete un risultato professionale che vada oltre quello che si fa con un Wizard (e nel caso basta ed avanza NSIS) dovete iniziare a pensare al setup molto ma molto prima.