Distribuzione del programma di installazione di Visual Studio
La distribuzione con Windows Installer consente di creare package del programma di installazione da distribuire agli utenti. Eseguendo il file di installazione, verrà avviata una procedura guidata per l'installazione dell'applicazione. A tale scopo, aggiungere un progetto di installazione alla soluzione. Durante la compilazione, viene creato un file di installazione da distribuire agli utenti. Eseguendo il file di installazione, verrà avviata una procedura guidata per l'installazione dell'applicazione.
Microsoft Windows Installer è un servizio di configurazione e installazione basato su dati fornito con il sistema operativo Windows. Windows Installer gestisce un database contenente informazioni su ogni applicazione installata, inclusi file, chiavi del Registro di sistema e componenti. Durante la disinstallazione di un'applicazione, prima di rimuovere un file, una chiave del Registro di sistema o un componente, il database viene esaminato per verificare che l'elemento da rimuovere non sia utilizzato da altre applicazioni, evitando in tal modo che la rimozione di un'applicazione provochi il malfunzionamento di un'altra applicazione.
Nota
Le versioni Express Edition non includono la tecnologia Windows Installer. Per informazioni sulla tecnologia di distribuzione utilizzata nelle versioni Express Edition, vedere Sicurezza e distribuzione di ClickOnce.
Utilizzando gli strumenti di distribuzione in Visual Studio con le funzionalità fornite da Windows Installer, è possibile distribuire e gestire le applicazioni.
Creazione di un pacchetto di installazione
Se si desidera distribuire un'applicazione e i relativi prerequisiti, è opportuno utilizzare un pacchetto di installazione. Le applicazioni presentano in genere dipendenze da .NET Framework, SQL Server Express o anche da un file EXE o DLL personalizzato. Non è tuttavia possibile sapere con certezza se i computer degli utenti finali dispongano della versione di .NET Framework o di altre dipendenze su cui si basa l'applicazione. Per questo motivo è consigliabile evitare di copiare l'applicazione sul computer dell'utente finale.
Percorso di installazione
Gli utenti finale possono installare l'applicazione dal Web, da CD, mediante condivisione di file di rete o altre alternative. Il percorso di installazione influisce sul modello di progetto che è possibile utilizzare. Se ad esempio si desidera che gli utenti finali eseguano l'installazione dal Web, è possibile utilizzare il modello Progetto di installazione Web. Per eseguire l'installazione da un CD o una rete, utilizzare il modello Progetto di installazione. Per ulteriori informazioni sui modelli di progetti di distribuzione, vedere Progetti di installazione e distribuzione.
File e cartelle
È possibile utilizzare l'Editor del file system per controllare il percorso e la modalità di installazione dei file di distribuzione. Il file system di un computer può essere organizzato in modo diverso da quello di un altro computer, così come anche i nomi delle cartelle possono essere diversi. Nell'Editor del file system viene utilizzato il concetto di cartelle astratte, per garantire che i file vengano installati nel percorso desiderato. Per ulteriori informazioni, vedere Gestione dell'installazione dei file durante la distribuzione.
Le cartelle virtuali costituiscono una rappresentazione delle cartelle di sistema di Windows. La Cartella Desktop è l'equivalente della cartella di sistema Desktop. In Windows viene tenuta traccia del percorso delle cartelle di sistema, quindi i file inseriti nella cartella Desktop vengono sempre copiati nella cartella di sistema Desktop, a prescindere dal percorso o dal nome della cartella. Per ulteriori informazioni, vedere Cartelle speciali e cartelle personalizzate.
È anche possibile creare cartelle personalizzate e collocarle all'interno di una qualsiasi cartella di sistema. Si potrebbe ad esempio creare una cartella Dati applicazioni sotto la Cartella Applicazione, in modo che, indipendentemente dal percorso della Cartella Applicazione nel computer di destinazione, i file inseriti nella cartella Dati applicazioni vengano sempre installati nello stesso percorso relativo. Per ulteriori informazioni, vedere Procedura: aggiungere e rimuovere cartelle nell'Editor del file system.
Le cartelle dell'Editor del file system possono contenere file, output di progetto e assembly. Gli output di progetto rappresentano gli elementi contenuti in un altro progetto facente parte della soluzione e possono comprendere output primario che viene compilato, quale ad esempio un file eseguibile, risorse localizzate, informazioni di debug sui simboli, file di dati, come ad esempio pagine HTML, e i file di origine del progetto. Ognuno di questi output viene detto gruppo di output del progetto. I gruppi di output del progetto contengono l'output primario, detto anche output chiave, oltre ad output e dipendenze aggiuntive. Per ulteriori informazioni, vedere Procedura: aggiungere e rimuovere output di progetto con l'Editor del file system e Procedura: aggiungere elementi a un progetto di distribuzione.
Per ogni file o cartella è inoltre possibile impostare condizioni mediante la proprietà Condition. In questo modo è possibile personalizzare l'installazione dei file in base alle condizioni rilevate sul computer di destinazione durante l'installazione. Si potrebbe decidere, ad esempio, di installare file diversi in base alla versione del sistema operativo del computer di destinazione. Per ulteriori informazioni, vedere Proprietà Condition.
Nell'Editor del file system è inoltre possibile creare collegamenti, che consentono di inserire file in una cartella e farvi riferimento mediante un collegamento creato sul desktop o in un'altra cartella. Per ulteriori informazioni, vedere Procedura: aggiungere e rimuovere collegamenti nell'Editor del file system.
Associazioni di file
In fase di distribuzione di un'applicazione è spesso opportuno associare un tipo di file all'applicazione. Se ad esempio con l'applicazione da distribuire vengono creati e utilizzati file con estensione myfile, è opportuno associare all'applicazione questo tipo di file in modo che, quando l'utente fa doppio clic su un file con estensione myfile, il file verrà aperto nell'applicazione.
Gli strumenti di distribuzione di Visual Studio includono un Editor dei tipi di file, che consente di specificare i tipi di documento e di associarli a estensioni di file. È inoltre possibile specificare verbi o azioni per ciascun tipo di documento e specificare i tipi MIME per i tipi di documento per l'utilizzo nei browser. Per ulteriori informazioni, vedere Gestione dei tipi di file durante la distribuzione.
Durante l'installazione, nel computer di destinazione vengono aggiornate le impostazioni specificate nell'Editor dei tipi di file.
Registro di sistema
La distribuzione di un'applicazione comporta spesso la necessità di accedere al Registro di sistema, impostarne i valori o creare nuove chiavi. Gli strumenti di distribuzione in Visual Studio forniscono queste funzionalità.
L'Editor del Registro di sistema di Visual Studio è simile all'Editor del Registro di sistema di Windows: entrambi gli strumenti forniscono una rappresentazione gerarchica del Registro di sistema nel computer di destinazione. Vengono rappresentate le chiavi radice del Registro di sistema standard. È possibile modificare i valori per le chiavi esistenti, aggiungere valori per nuove chiavi e specificare chiavi predefinite. Per ulteriori informazioni, vedere Gestione delle impostazioni del Registro di sistema durante la distribuzione.
Durante l'installazione le chiavi e i valori specificati nell'Editor del Registro di sistema vengono scritti nel Registro di sistema del computer di destinazione.
Per ogni valore o chiave del Registro di sistema è inoltre possibile impostare condizioni mediante la proprietà Condition. In questo modo è possibile personalizzare il Registro di sistema in base alle condizioni rilevate sul computer di destinazione durante l'installazione. Si potrebbe decidere, ad esempio, di immettere un valore diverso nel Registro di sistema in base alla versione del sistema operativo del computer di destinazione.
Firma Authenticode
È opportuno firmare un'applicazione o un componente per consentire agli utenti di conoscerne l'autore e verificare che tale applicazione o componente sia sicuro. È consigliabile firmare i programmi di installazione e i file CAB scaricati tramite un Web browser.
È possibile utilizzare gli strumenti di distribuzione di Visual Studio per firmare un programma di installazione, un modulo unione o un file CAB avvalendosi della tecnologia Authenticode di Microsoft. È in primo luogo necessario ottenere un certificato digitale per firmare l'applicazione o i componenti.
Per utilizzare la firma Authenticode, è necessario abilitare i manifesti ClickOnce firmati nel progetto di distribuzione. Per ulteriori informazioni, vedere Pagina Firma, Progettazione progetti.
Global Assembly Cache
La Global Assembly Cache è una cache di codice fornita da .NET Framework e utilizzata per archiviare gli assembly che devono essere condivisi da più applicazioni. Affinché possa essere installato nella Global Assembly Cache, l'assembly deve disporre di un nome sicuro, che fornisce a un'applicazione o a un componente un'identità univoca utilizzabile da un'altra funzionalità software per identificare e fare riferimento in modo esplicito all'applicazione o al componente. Per ulteriori informazioni, vedere Procedura: firmare un assembly (Visual Studio).
Per installare un assembly nella Global Assembly Cache, aggiungere l'assembly o il gruppo di output del progetto per l'assembly alla cartella Global Assembly Cache nell'Editor del file system. Per aprire l'editor, scegliere Editor dal menu Visualizza e quindi fare clic su Editor del file system.
La cartella Global Assembly Cache è diversa dalle altre cartelle dell'Editor del file system, Non è possibile impostare proprietà o creare collegamenti alla cartella o agli assembly in essa contenuti.
Selezione di prerequisiti
Per poter distribuire un'applicazione è necessario distribuire anche tutti i componenti a cui l'applicazione fa riferimento. Ad esempio, la maggior parte delle applicazioni create con Visual Studio ha una dipendenza in .NET Framework. Prima di installare l'applicazione, è necessario che una versione richiesta del Common Language Runtime sia presente nel computer di destinazione. Gli strumenti di distribuzione di Visual Studio consentono di installare .NET Framework e altri componenti nell'ambito dell'installazione. Il processo di installazione dei componenti dei prerequisiti è anche noto come avvio.
Per ulteriori informazioni, vedere Procedura: installare i prerequisiti nella distribuzione Windows Installer.
Installazione con privilegi di amministratore
L'installazione amministrativa è una funzionalità di Microsoft Windows Installer che consente di installare un'immagine di origine di un'applicazione in una condivisione di rete. Gli utenti appartenenti a un gruppo di lavoro con accesso alla condivisione di rete possono poi installare l'applicazione dall'immagine di origine.
L'Editor dell'interfaccia utente consente di specificare un set diverso di finestre di dialogo di installazione da visualizzare quando un amministratore installa l'applicazione in una condivisione di rete mediante una riga di comando con l'opzione /a (msiexec /aNomeProgrammaInstallazione). Per ulteriori informazioni, vedere Gestione dell'interfaccia utente durante la distribuzione.
Nota
Quando un'applicazione viene installata mediante l'installazione amministrativa, i file di avvio automatico dell'applicazione (i file che installano Windows Installer se necessario) non vengono copiati nel server anche se la proprietà Bootstrapper è impostata su Windows Installer. Se per l'installazione sono necessari i file di avvio automatico dell'applicazione, è necessario copiare manualmente sul server i file Instmsia.msi, Instmsiw.msi, Setup.exe e Setup.ini. Questi file si trovano nella stessa directory insieme al file MSI per l'applicazione.
Per ulteriori informazioni, vedere la documentazione relativa all'SDK di Windows Installer in Installazione amministrativa (Windows Installer).
Windows ed elevazione
La tecnologia di Windows Installer supporta l'installazione di software nei sistemi operativi Windows Vista e Windows 7. L'utente finale che installa applicazioni riceve prompt solo per le installazioni di componenti che richiedono un'elevazione, anche quando il computer dell'utente è in esecuzione nel controllo dell'account utente.
Elevazione delle applicazioni
In genere, Setup.exe (anche denominato programma di avvio automatico) non viene eseguito come elevato, ma al livello di autorizzazione dell'utente corrente. Pertanto, l'installazione non richiede l'elevazione al momento dell'avvio dell'installazione dell'applicazione finale. Tuttavia, un file con estensione msi generalmente informa l'utente, a differenza di Setup.exe.
Nel manifesto di controllodell'account utente incorporato del programma di avvio automatico, il nodo requestedExecutionLevel specifica che l'installazione viene eseguita come utente corrente (asInvoker):
<requestedExecutionLevel level="asInvoker" />
È tuttavia possibile elevare l'installazione dell'applicazione, se necessario. Ad esempio, la modifica delle impostazioni di Internet Information Services (IIS) in un progetto di installazione Web richiede privilegi amministrativi, analogamente all'installazione di assembly nella Global Assembly Cache. La richiesta di elevazione ha luogo dopo l'installazione dei prerequisiti, ma prima dell'installazione dell'applicazione.
Per elevare le autorizzazioni per un'installazione, aprire il file del progetto (vdproj). Nella sezione MsiBootstrapper del file del progetto, impostare la proprietà RequiresElevation su True. Questa proprietà non viene resa disponibile tramite l'ambiente di sviluppo integrato (IDE) di Visual Studio. Pertanto, è necessario utilizzare il file del progetto. Per ulteriori informazioni, vedere Proprietà RequiresElevation.
Elevazione assistita dall'amministratore
Windows Installer supporta l'elevazione assistita dall'amministratore in Windows Vista e Windows 7. In questo scenario, all'utente vengono richieste le credenziali di amministratore e l'amministratore immette la password per l'utente. Per supportare questo scenario, il programma di avvio automatico imposta la proprietà AdminUser su True quando sul computer viene eseguito Windows Vista o una versione successiva di Windows.
Nota
Se si esegue Windows Vista su un computer che non utilizza il controllo dell'account utente e l'utente non è un amministratore, la proprietà AdminUser verrà comunque impostata su True. Di conseguenza, i programmi di installazione con estensione exe (ad esempio SQLExpress32.exe) devono essere scritti in modo da rilevare le autorizzazioni appropriate e generare un codice di uscita specifico in caso di autorizzazioni insufficienti. È necessario creare Setup.exe per intercettare questo codice di uscita e visualizzare un messaggio che indica la necessità di un amministratore.
Elevazione dei prerequisiti
Windows Vista e Windows 7 elevano l'installazione dei componenti dei prerequisiti quando necessario. Il programma di avvio automatico di per sé non esegue alcuna elevazione; quando Windows Vista o Windows 7 è in esecuzione nel controllo dell'account utente, viene generato un prompt per ogni componente dei prerequisiti da elevare, a meno che non sia già installato. Se un'elevazione del package ha esito negativo, anche l'avvio automatico ha esito negativo e viene visualizzato un messaggio di errore appropriato.
Elevazione dell'azione personalizzata
Le azioni personalizzate create nell'Editor delle azioni personalizzate vengono eseguite come elevate. Le azioni personalizzate non devono accedere ai dati specifici dell'utente, ad esempio il Registro di sistema o il file system, poiché l'azione personalizzata non viene eseguita nell'account dell'utente che richiama l'azione.
Per impostazione predefinita, le azioni personalizzate vengono eseguite elevate poiché l'impostazione predefinita della proprietà NoImpersonate è True nell'Editor delle azioni personalizzate. L'impostazione di NoImpersonate su False costringerebbe l'azione personalizzata a rappresentare l'utente che richiama l'azione, il quale potrebbe disporre di autorizzazioni ridotte.
Differenze tra le versioni di Visual Studio
Sussistono alcune differenze nelle modalità di esecuzione di progetti di installazione di Visual Studio 2005 e Visual Studio 2008 nel controllo dell'account utente.
La funzione di rilevamento del programma di installazione incorporata in Windows Vista o Windows 7 richiede il consenso quando l'esecuzione avviene nel controllo dell'account utente. Un programma di avvio automatico (Setup.exe) compilato con Visual Studio 2005 richiede sempre il consenso, indipendentemente dagli elementi installati. Poiché Setup.exe e i relativi processi vengono eseguiti con un token di amministratore in Windows Vista e Windows 7, l'installazione dell'applicazione finale verrà eseguita con privilegi elevati. Se un utente esegue Setup.exe con elevazione assistita dall'amministratore, l'applicazione verrà installata nel profilo dell'utente elevato e non nel profilo dell'amministratore.
In Visual Studio 2008 e in Visual Studio 2010 Setup.exe non richiede alcuna elevazione al momento dell'avvio. Per impedire la richiesta di elevazione, il manifesto incorporato del programma di avvio automatico specifica che Setup.exe venga eseguito con un livello di esecuzione obbligatorio di asInvoker. In questo modo è possibile sfruttare il vantaggio derivante dal fatto che l'installazione dell'applicazione finale non viene eseguita come elevata, consentendo comunque un'installazione elevata dei componenti dei prerequisiti essenziali in base alle esigenze. Il programma di avvio automatico chiama ShellExecute per avviare i prerequisiti. Windows Vista o Windows 7 riceve questa chiamata, esegue il rilevamento dell'installazione e genera un prompt per l'utente prima dell'installazione.
Lo svantaggio di questa modifica è che viene generato un prompt per ogni componente dei prerequisiti da installare, oltre che per l'applicazione stessa. Tuttavia, se tutti i prerequisiti sono già presenti sul computer, l'installazione non genera alcun prompt. Inoltre, non vi sono controlli esterni che richiedono l'elevazione. I controlli esterni funzionano, ma l'utente riceve numerosi prompt di elevazione per ogni controllo esterno, oltre ai prompt per il programma di installazione.
Vedere anche
Attività
Risoluzione dei problemi relativi all'installazione e alla distribuzione di progetti
Riferimenti
Errori di distribuzione e supporto
Concetti
Progetti di installazione e distribuzione
Altre risorse
Distribuzione di applicazioni e componenti
Attività e procedure dettagliate relative alla distribuzione