Condividi tramite


Aggiunta di prerequisiti personalizzati

Aggiornamento: novembre 2007

Il programma di avvio automatico è un programma di installazione generico che consente di avviare qualsiasi file ridistribuibile assemblato in un file di Windows Installer o in un programma eseguibile. Per configurare questo strumento è possibile utilizzare un insieme di semplici manifesti XML in cui sono specificati tutti i metadati necessari per la gestione dell'installazione del componente. Il programma di avvio automatico non impone alcun vincolo sulla tecnologia (Windows Installer o ClickOnce) che deve essere utilizzata per l'installazione dell'applicazione.

Quando un utente avvia Setup.exe, viene innanzitutto rilevato se i componenti dei prerequisiti sono già installati. Se uno di questi componenti non è presente, verrà visualizzata una finestra di dialogo di installazione in cui sono elencati i componenti mancanti insieme al relativo contratto di licenza. Se invece tutti i componenti dei prerequisiti sono già installati, verrà avviato il programma di installazione dell'applicazione.

Dopo l'accettazione del contratto di licenza, verrà avviato il processo di download e installazione. Una volta installati tutti i prerequisiti, verrà avviato il processo di installazione dell'applicazione stessa.

Creazione di package personalizzati

In alcuni casi non è necessario creare un package per il file ridistribuibile. In genere, i package devono essere compilati solo per i componenti condivisi o di sistema. In questo caso, infatti, è necessario installare alcuni file nella Global Assembly Cache, eseguire la registrazione globale o creare un servizio Windows.

Si consiglia di chiedere al provider del controllo se è possibile fornire il file ridistribuibile insieme all'applicazione. Se per la ridistribuzione del componente prerequisito è sufficiente una semplice operazione di copia, ad esempio perché il componente non contiene alcuna dipendenza, non è necessario creare un package. Accertarsi solo che il file sia incluso nell'installazione o che sia impostato su Copia localmente. La proprietà Copy del file in Visualizzazione proprietà deve essere impostata su True.

Occorre inoltre verificare se è necessario utilizzare un programma di installazione. In caso affermativo, è possibile utilizzare un package del programma di avvio automatico.

Per creare un nuovo package del componente, è necessario specificare quanto segue:

  • Il componente ridistribuibile sotto forma di file EXE o MSI.

  • Il manifesto del prodotto (product.xml), in cui sono contenuti i metadati indipendenti dalla lingua relativi al package. Questo file contiene i metadati comuni a tutte le versioni localizzate del componente ridistribuibile.

  • Il manifesto del package (package.xml), in cui sono contenuti i metadati specifici della lingua. Questo file, in genere, contiene i messaggi di errore localizzati. Deve essere disponibile almeno un manifesto del package per ciascuna versione localizzata del componente.

I file di manifesto devono essere creati manualmente e i metadati contenuti devono essere conformi a uno schema specifico, come descritto dagli elementi dello schema del package inclusi in Windows Software Development Kit (SDK). Per informazioni di riferimento sullo schema, vedere Riferimenti dello schema di prodotti e package. Il generatore del programma di installazione integrato in Visual Studio convaliderà i file di manifesto in fase di generazione.

Per specificare le dipendenze tra i package in questi manifesti è possibile utilizzare l'elemento dello schema DependsOnProduct.

A questo punto, è necessario copiare i file di manifesto del prodotto e del package, insieme ai file ridistribuibili, in una speciale cartella riservata ai package ridistribuibili:

\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages

Per scrivere un programma di installazione che copia un componente ridistribuibile e i relativi manifesti in questa cartella, è possibile individuare a livello di codice il percorso della cartella del programma di avvio automatico in base al valore Path contenuto nelle seguenti chiavi del Registro di sistema:

HKLM\Software\Microsoft\GenericBootstrapper\3.5

Ciascun componente ridistribuibile si trova in una specifica sottocartella della directory Packages. Il manifesto del prodotto e i file ridistribuibili vengono quindi inseriti in questa sottocartella. Le versioni localizzate del componente vengono inserite, insieme ai manifesti del package, in sottocartelle denominate in base al nome delle impostazioni cultura. Per ulteriori informazioni, vedere la tabella in CultureInfo.

Una volta copiati nella cartella del programma di avvio automatico, questi file verranno visualizzati automaticamente nella finestra di dialogo Prerequisiti di Visual Studio, per consentire allo sviluppatore di selezionarli tramite una casella di controllo.

Per ulteriori informazioni sull'utilizzo del programma di avvio automatico per la configurazione dell'installazione, vedere l'articolo Use the Visual Studio 2005 Bootstrapper to Kick-Start Your Installation (informazioni in lingua inglese).

Separazione dei file ridistribuibili del package del programma di avvio automatico dalle installazioni delle applicazioni

In linea generale, i componenti inclusi in un file ridistribuibile del package del programma di avvio automatico dovrebbero essere mantenuti separati dalle applicazioni da cui sono utilizzati. Si supponga, ad esempio, che un package del programma di avvio automatico denominato Acme.DataWidgets.msi contenga il componente Acme.DataWidgets.dll. Quest'ultimo non deve essere visualizzato nella directory bindir del progetto in fase di sviluppo e non deve essere distribuito nel package del programma di installazione dell'applicazione.

Si consiglia quindi di installare i componenti del programma di avvio automatico nella Global Assembly Cache dei computer di sviluppo utilizzando, se possibile, lo stesso programma di installazione dei file ridistribuibili di base del package del programma di avvio automatico. In questo modo, in fase di sviluppo i componenti del programma di avvio automatico non verranno copiati nella directory bindir del progetto. Si consiglia inoltre di definire un file RedistList in cui siano elencati tutti gli assembly inclusi nel package dei file ridistribuibili del programma di avvio automatico. In questo modo, i componenti del programma di avvio automatico non verranno inclusi nei progetti di distribuzione dell'applicazione. Il file RedistList deve essere installato solo sui computer degli sviluppatori.

A questo scopo, è necessario creare un elenco di file ridistribuibili nella cartella RedistList della directory di .NET Framework (\WINDOWS\Microsoft.NET\Framework).

L'elenco dei file ridistribuibili è un file XML il cui nome deve presentare il seguente formato: nome_società + nome_componente + RedistList.xml. Se ad esempio il nome del componente è "Datawidgets" e quello della società "Acme", utilizzare pertanto il nome Acme.DataWidgets.RedistList.xml. Di seguito viene riportato un esempio del possibile contenuto dell'elenco dei file ridistribuibili:

<?xml version="1.0" encoding="UTF-8"?>
<FileList Redist="Acme.DataWidgets" >
<File AssemblyName="Acme.DataGrid" Version="1.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" Culture="neutral" ProcessorArchitecture="MSIL" InGAC="true" />
</FileList>

Aggiunta di package alla finestra di dialogo Prerequisiti

Nella Finestra di dialogo Prerequisiti è possibile selezionare i componenti che sono necessari all'applicazione prima dell'installazione. Molti prerequisiti standard sono inclusi in Visual Studio. È comunque possibile aggiungere altri componenti prerequisiti, forniti sia da Microsoft che da altri produttori. A questo scopo, è necessario creare i manifesti del prodotto e del package come descritto in precedenza.

Nell'elenco Scegliere i prerequisiti da installare della finestra di dialogo Prerequisiti sono indicati i package prerequisiti che possono essere installati. L'ordine dei package nell'elenco è basato sulle dipendenze specificate nei manifesti e corrisponde all'ordine in cui verranno installati i package.

Quando si aggiunge un package generico al programma di avvio automatico, il package verrà visualizzato come MyPackage nella finestra di dialogo Prerequisiti. In Visual Studio i package da installare non vengono selezionati automaticamente.

Per i progetti ClickOnce, si consiglia di includere .NET Framework per tutti i tipi di progetti impostando la selezione predefinita della casella di controllo .NET Framework in Scegliere i prerequisiti da installare.

Per i progetti basati su Windows Installer, se il progetto corrente è un progetto di installazione o di installazione Web, la casella di controllo .NET Framework verrà selezionata automaticamente. Se in fase di compilazione non è stato selezionato né .NET Framework né il package di Windows Installer, verrà visualizzato un avviso di compilazione.

Vedere anche

Attività

Procedura: installare i prerequisiti con un'applicazione ClickOnce

Concetti

Distribuzione dei prerequisiti (Visual Studio)

Riferimenti

Finestra di dialogo Prerequisiti

Riferimenti dello schema di prodotti e package

Altre risorse

https://msdn.microsoft.com/msdnmag/issues/04/10/Bootstrapper/