in

DotNetSide

Dot Net South Italy Developers User Group

Articoli

Articoli pubblicati dagli iscritti a .netSide

Creare un Bootstrapper per ClickOnce

autore: Fabio Cozzolino

Una delle caratteristiche più importanti di un buon sistema di distribuzione è la possibilità di verificare la presenza dei cosiddetti prerequisiti. Molto spesso, l'applicazione che stiamo distribuendo si appoggia a componenti esterni senza i quali non potrebbe nemmeno partire. Nel caso di applicazioni C#, ad esempio, requisito fondamentale è la presenza del .NET Framework. Altro prerequisito, nel caso in cui abbiamo bisogno di un database locale, potrebbe essere la presenza di Sql Server 2005. Fortunatamente anche ClickOnce permette la verifica e l'installazione dei prerequisiti, mettendoci anche a disposizione un set predefinito dal quale possiamo selezionare i prerequisiti di nostro interesse.

Il set di prerequisiti di Visual Studio 2005

Cosa accade, però, nel momento in cui il nostro prerequisito, quello di cui abbiamo bisogno, non rientra nel set predefinito di Visual Studio 2005? L'unica soluzione è quella di scrivercene uno appositamente ...

I prerequisiti in Visual Studio 2005

L'elenco dei prerequisiti gestito da Visual Studio 2005 è raggiungibile dal percorso drive:\\<path visual studio 8>\SDK\v2.0\Bootstrapper\Packages. Visual Studio, infatti, organizza i prerequisiti come packages. Ogni package contiene un file product.xml che descrive i files associati al package, i controlli che devono essere eseguiti, le modalità e le condizioni di installazione e tutta una serie di informazioni che ne consentono poi l'esecuzione corretta all'interno del bootstrapper, la cui generazione è un compito che si assume Visual Studio stesso.

Ogni package contiene, eventualmente, delle sottocartelle utili per la localizzazione del package stesso. La scrittura di questi files xml, anche se non molto complessi, può risultare pesante e a volte dare luogo a facili errori. Fortunatamente su gotdotnet viene portato avanti un progetto che permette la creazione attraverso un tool facile da utilizzare: il Bootstrapper Manifest Generator.

Creiamo il nostro prerequisito

Il Bootstrapper Manifest Generator (BMG) stesso è distribuito utilizzando ClickOnce. Proviamo quindi ad installarlo ed a creare il nostro primo progetto. Immaginiamo di dover verificare se un determinato assembly, utilizzato dalla nostra applicazione e che fa parte di un framework proprietario, è già presente nella GAC (Global Assembly Cache) della macchina su stiamo per effettuare l'installazione.

Clicchiamo su File | New, selezioniamo Package Manifest e clicchiamo su OK.

 

BMG crea un progetto vuoto dove dobbiamo impostare poi il nome del nostro prerequisito. Selezioniamo la voce package ed impostiamo il nome del prerequisito, ad esempio: DotNetSide Client Framework.

Dopo aver impostato il project name, clicchiamo sul pulsante Add Install File come evidenziato nell'immagine precedente. In questo modo BMG ci chiede di selezionare il file di setup che dovrà poi essere eventualmente eseguito e contestualmente crea una nuova sezione dove noi andremo poi ad indicare le azioni ed i controlli di cui il bootstrapper si farà carico.

Impostiamo quindi il nome che sarà poi visualizzato all'interno dell'elenco dei prerequisiti di Visual Studio 2005. Selezioniamo poi la cartella System Checks dove poi impostiamo il tipo di controllo su Assembly GAC Check.

Selezioniamo il nostro assemly e indichiamo che il risultato del check deve finire nella proprietà FxCheck indicata nella textbox corrispondente alla label Property for Result.

La proprietà FxCheck verrà utilizzata nella scheda Install Condition dove andremo ad indicare che se l'assembly esiste l'installazione non deve avvenire.

Ora è sufficiente compilare il progetto cliccando semplicemente sul pulsante posto nella toolbar. BMG provvederà a creare il file package.xml, a creare una cartella nel path dedicato ai packages e a copiare tutti i files necessari. Se la compilazione va a buon fine, proviamo ad aprire un progetto Window di Visual Studio 2005 e vedremo, nella scheda Properties | Publish | Prerequisites, comparire il nostro prerequisito.

Conclusioni

La necessità di installare un prerequisito è piuttosto frequente. Fortunatamente ClickOnce ci supporta in questo, consentedoci anche la creazione di package personalizzati, come abbiamo visto in questo articolo. Un prerequisito non è comunque limitato solo a questo, è possibile, ad esempio, verificare se è presente una licenza d'uso, eseguire procedure personalizzate per verificare particolari condizioni, etc. Per qualsiasi problema potete contattarmi attraverso il mio blog, il forum di dotnetside o anche rispondere a questo articolo. Buon lavoro.

Only published comments... Oct 29 2006, 08:03 PM by DotNetSide Staff
Filed under: ,

Comments

 

Weblog di Fabio Cozzolino said:

Ebbene s&amp;igrave;. Purtroppo, per motivi di tempo, durante il workshop non sono riuscito a trattare l&amp;#39;argomento

October 30, 2006 10:16 AM
Powered by Community Server (Commercial Edition), by Telligent Systems