Scelta di una strategia di aggiornamento ClickOnce

ClickOnce può fornire il supporto per gli aggiornamenti automatici delle applicazioni. Un'applicazione ClickOnce legge periodicamente il file manifesto di distribuzione per verificare l'eventuale disponibilità di aggiornamenti. In caso affermativo, la nuova versione dell'applicazione viene scaricata ed eseguita. Per maggiore efficienza, vengono scaricati solo i file che risultano modificati.

Quando si progetta un'applicazione ClickOnce, è necessario determinare la strategia da adottare per controllare la disponibilità di aggiornamenti. È possibile utilizzare tre strategie di base: l'impostazione del controllo della disponibilità di aggiornamenti all'avvio dell'applicazione, l'impostazione del controllo dopo l'avvio dell'applicazione (esecuzione in un thread in background) o la creazione di una specifica interfaccia utente per gli aggiornamenti.

È inoltre possibile determinare la frequenza con cui verrà eseguito il controllo, nonché contrassegnare gli aggiornamenti come obbligatori.

Nota

Per gli aggiornamenti dell'applicazione è necessario disporre della connettività di rete. In assenza di una connessione di rete, l'applicazione verrà eseguita senza il controllo della disponibilità di aggiornamenti, indipendentemente dalla strategia di aggiornamento prescelta.

Nota

In .NET Framework 2.0 e .NET Framework 3.0, qualunque sia la strategia di aggiornamento adottata, prima dell'avvio, dopo l'avvio o mediante le API di System.Deployment.Application, è necessario impostare deploymentProvider nel manifesto di distribuzione. L'elemento deploymentProvider corrisponde in Visual Studio al campo Posizione aggiornamento nella finestra di dialogo Aggiornamenti della scheda Pubblica. Tale regola è relaxed in .NET Framework 3.5. Per ulteriori informazioni, vedere Distribuzione di applicazioni ClickOnce per i server di test e di produzione senza riapposizione della firma.

Controllo della disponibilità di aggiornamenti dopo l'avvio dell'applicazione

Se si utilizza questa strategia, l'applicazione tenterà di individuare e leggere il file manifesto di distribuzione in background, mentre è in esecuzione. Se è disponibile un aggiornamento, la volta successiva che l'utente eseguirà l'applicazione verrà chiesto di scaricarlo e installarlo.

Questa strategia risulta più adatta a connessioni di rete con larghezza di banda limitata o ad applicazioni di maggiori dimensioni che possono richiedere lunghi tempi di download.

Per adottare questa strategia di aggiornamento, fare clic su Dopo l'avvio dell'applicazione nella sezione Scegliere quando controllare la disponibilità di aggiornamenti della finestra di dialogo Aggiornamenti applicazione. Specificare quindi un intervallo di aggiornamento nella sezione Specificare con quale frequenza controllare la disponibilità di aggiornamenti.

Questa operazione equivale a modificare l'elemento Update nel manifesto di distribuzione, come indicato di seguito:

   <!-- When to check for updates -->
   <subscription>
      <update>
         <expiration maximumAge="6" unit="hours" />
      </update>
   </subscription>

Controllo della disponibilità di aggiornamenti prima dell'avvio dell'applicazione

La strategia predefinita consiste nel tentare di individuare e leggere il file manifesto di distribuzione prima dell'avvio dell'applicazione. Se si utilizza questa strategia, l'applicazione tenterà di individuare e leggere il file manifesto di distribuzione ogni volta che verrà avviata. Se è disponibile un aggiornamento, questo verrà scaricato e avviato. In caso contrario, verrà avviata la versione esistente dell'applicazione.

Questa strategia risulta più adatta a connessioni di rete con larghezza di banda più ampia. Il ritardo nell'avvio dell'applicazione potrebbe essere eccessivamente lungo nel caso di connessioni con larghezza di banda limitata.

Per adottare questa strategia di aggiornamento, fare clic su Prima dell'avvio dell'applicazione nella sezione Scegliere quando controllare la disponibilità di aggiornamenti della finestra di dialogo Aggiornamenti applicazione. Per ulteriori informazioni, vedere Finestra di dialogo Aggiornamenti applicazione.

Questa operazione equivale a modificare l'elemento Update nel manifesto di distribuzione, come indicato di seguito:

   <!-- When to check for updates -->
   <subscription>
      <update>
         <beforeApplicationStartup />
      </update>
   </subscription>

Impostazione degli aggiornamenti come obbligatori

In alcuni casi può essere necessario richiedere agli utenti di eseguire una versione aggiornata dell'applicazione. È ad esempio possibile che sia stata apportata una modifica a una risorsa esterna, quale un servizio Web, che impedisce il corretto funzionamento dell'applicazione. In tal caso, può essere opportuno contrassegnare l'aggiornamento come obbligatorio e impedire che gli utenti eseguano la versione precedente.

Nota

Anche se è possibile impostare gli aggiornamenti come obbligatori mediante altre strategie, la selezione di Prima dell'avvio dell'applicazione è l'unico sistema per garantire che non venga eseguita una versione precedente. Se all'avvio viene rilevato l'aggiornamento obbligatorio, è necessario accettare l'aggiornamento o chiudere l'applicazione.

Per contrassegnare un aggiornamento come obbligatorio, fare clic su Specificare la versione minima richiesta per l'applicazione nella finestra di dialogo Aggiornamenti applicazione, quindi specificare la versione della pubblicazione (Principale, Secondario, Compila, Revisione) che indica il numero di versione più basso dell'applicazione che è possibile installare. Per ulteriori informazioni, vedere Finestra di dialogo Aggiornamenti applicazione.

Questa operazione equivale a impostare l'attributo minimumRequiredVersion dell'elemento Deployment nel manifesto di distribuzione. Di seguito è riportato un esempio:

   <deployment install="true" minimumRequiredVersion="1.0.0.0">

Impostazione degli intervalli di aggiornamento

È possibile specificare anche la frequenza con cui dovrà essere effettuato il controllo della disponibilità di aggiornamenti, A tale scopo, specificare che il controllo della disponibilità degli aggiornamenti deve essere eseguito dall'applicazione dopo l'avvio come descritto in "Controllo della disponibilità di aggiornamenti dopo l'avvio dell'applicazione", precedentemente in questo argomento.

Per definire l'intervallo di aggiornamento, impostare le proprietà Specificare con quale frequenza controllare la disponibilità di aggiornamenti nella finestra di dialogo Aggiornamenti applicazione. Per ulteriori informazioni, vedere Finestra di dialogo Aggiornamenti applicazione.

Questa operazione equivale a impostare gli attributi maximumAge e unit dell'elemento Update nel manifesto di distribuzione.

Ad esempio è possibile ripetere l'operazione ogni volta che viene eseguita l'applicazione, una volta alla settimana o una volta al mese. Se nel momento specificato non è disponibile una connessione di rete, la disponibilità di aggiornamenti verrà controllata alla successiva esecuzione dell'applicazione.

Creazione di un'interfaccia utente per gli aggiornamenti

Quando utilizza questa strategia, lo sviluppatore dell'applicazione fornisce un'interfaccia che consente all'utente di scegliere quando o con quale frequenza dovrà essere effettuato il controllo della disponibilità di aggiornamenti. È ad esempio possibile rendere disponibile un comando "Controlla aggiornamenti adesso" o una finestra di dialogo "Impostazioni di aggiornamento" con opzioni per la selezione di diversi intervalli di aggiornamento. Le API di distribuzione ClickOnce forniscono un framework per la programmazione di un'interfaccia utente personalizzata per gli aggiornamenti. Per ulteriori informazioni, vedere lo spazio dei nomi System.Deployment.Application.

Se per controllare la disponibilità di aggiornamenti l'applicazione utilizza le API distribuzione, si consiglia di bloccare questo controllo come descritto nella sezione successiva "Blocco del controllo della disponibilità di aggiornamenti".

Questa strategia risulta più adatta quando sono necessarie strategie di aggiornamento differenti per utenti differenti.

Blocco del controllo della disponibilità di aggiornamenti

È anche possibile impedire all'applicazione di effettuare il controllo della disponibilità di aggiornamenti. Questo può essere utile, ad esempio, quando si dispone di un'applicazione semplice che non verrà mai aggiornata, ma si desidera trarre vantaggio dalla semplicità di installazione offerta dalla distribuzione ClickOnce.

Si consiglia di bloccare il controllo della disponibilità di aggiornamenti anche quando nell'applicazione vengono utilizzate API di distribuzione per l'esecuzione di aggiornamenti specifici. Per informazioni, vedere la sezione precedente "Creazione di un'interfaccia utente per gli aggiornamenti".

Per bloccare il controllo della disponibilità di aggiornamenti, deselezionare la casella di controllo Controlla aggiornamenti dell'applicazione nella Finestra di dialogo Aggiornamenti applicazione.

Per bloccare questo controllo, è anche possibile rimuovere il tag <Subscription> dal manifesto di distribuzione.

Elevazione delle autorizzazioni e aggiornamenti

Se in una nuova versione di un'applicazione ClickOnce è richiesto un livello di attendibilità più alto rispetto alla versione precedente, verrà chiesto da ClickOnce se si desidera che all'applicazione venga concesso un livello di attendibilità più alto. Se non si accetta di concedere un livello di attendibilità più alto, l'aggiornamento non verrà installato. In ClickOnce verrà chiesto di installare nuovamente l'applicazione al successivo riavvio. Se non si accetta di concedere un livello di attendibilità più alto in questa fase e l'aggiornamento non è contrassegnato come obbligatorio, verrà eseguita la versione obsoleta dell'applicazione. Se tuttavia l'aggiornamento è obbligatorio, l'applicazione non verrà eseguita finché non si accetterà il livello di attendibilità più alto.

Se si utilizza la distribuzione di applicazioni attendibili, non verrà visualizzato alcun prompt relativo ai livelli di attendibilità. Per ulteriori informazioni, vedere Cenni preliminari sulla distribuzione di applicazioni attendibili.

Vedere anche

Attività

Procedura: gestire gli aggiornamenti per un'applicazione ClickOnce

Riferimenti

Finestra di dialogo Aggiornamenti applicazione

System.Deployment.Application

Concetti

Sicurezza e distribuzione di ClickOnce

Scelta di una strategia di distribuzione ClickOnce

Protezione di applicazioni ClickOnce

Scelta di una strategia di distribuzione

Come vengono eseguiti gli aggiornamenti di applicazioni con ClickOnce