Distribuire applicazioni ClickOnce per i server di test e produzione senza riassegnare
Questo articolo descrive una funzionalità di ClickOnce introdotta in .NET Framework versione 3.5 che consente la distribuzione di applicazioni ClickOnce da più percorsi di rete senza firmare nuovamente o modificare i manifesti ClickOnce.
Nota
La riassegnazione è ancora il metodo preferito per la distribuzione di nuove versioni delle applicazioni. Quando possibile, usare il metodo di riassegnazione. Per altre informazioni, vedere Mage.exe (Strumento per la generazione e la modifica di manifesti).
Gli sviluppatori e gli ISV di terze parti possono acconsentire esplicitamente a questa funzionalità, semplificando l'aggiornamento delle applicazioni da parte dei clienti. Questa funzionalità può essere usata nelle situazioni seguenti:
Quando si aggiorna un'applicazione, non per la prima installazione di un'applicazione.
Quando è presente una sola configurazione dell'applicazione in un computer. Ad esempio, se un'applicazione è configurata per puntare a due database diversi, non è possibile usare questa funzionalità.
Escludere deploymentProvider dai manifesti della distribuzione
In .NET Framework 2.0 e .NET Framework 3.0 qualsiasi applicazione ClickOnce installata nel sistema per la disponibilità offline deve elencare un nel deploymentProvider
manifesto della distribuzione. Viene deploymentProvider
spesso definito percorso di aggiornamento. Si tratta del percorso in cui ClickOnce verifica la presenza di aggiornamenti dell'applicazione. Questo requisito, insieme alla necessità per gli editori di applicazioni di firmare le distribuzioni, rendeva difficile per un'azienda aggiornare un'applicazione ClickOnce da un fornitore o da altre terze parti. Rende inoltre più difficile distribuire la stessa applicazione da più posizioni nella stessa rete.
Con le modifiche apportate a ClickOnce in .NET Framework 3.5, è possibile che una terza parte fornisca un'applicazione ClickOnce a un'altra organizzazione, che può quindi distribuire l'applicazione nella propria rete.
Per sfruttare questa funzionalità, gli sviluppatori di applicazioni ClickOnce devono escludere deploymentProvider
dai manifesti di distribuzione. Questo requisito significa che è necessario escludere l'argomento -providerUrl
quando si creano manifesti di distribuzione con Mage.exe. In alternativa, se si generano manifesti di distribuzione con MageUI.exe, è necessario assicurarsi che la casella di testo Percorso di avvio nella scheda Manifesto dell'applicazione sia lasciata vuota.
Nota
In ClickOnce per .NET Core 3.1 e .NET 5 o versione successiva usare dotnet-mage.exe anziché Mage.exe. Per altre informazioni, vedere ClickOnce per .NET.
deploymentProvider e aggiornamenti dell'applicazione
A partire da .NET Framework 3.5, non è più necessario specificare un oggetto deploymentProvider
nel manifesto della distribuzione per distribuire un'applicazione ClickOnce per l'utilizzo online e offline. Questa modifica supporta lo scenario in cui è necessario creare il pacchetto e firmare manualmente la distribuzione, ma consentire ad altre aziende di distribuire l'applicazione nelle reti.
Il punto importante da ricordare è che le applicazioni che escludono un deploymentProvider
non possono modificare il percorso di installazione durante gli aggiornamenti, fino a quando non includono di nuovo un aggiornamento che include di nuovo il deploymentProvider
tag.
Ecco due esempi per chiarire questo punto. Nel primo esempio si pubblica un'applicazione ClickOnce senza deploymentProvider
tag e si chiede agli utenti di installarla da http://www.adatum.com/MyApplication/
. Se si decide di pubblicare l'aggiornamento successivo dell'applicazione da http://subdomain.adatum.com/MyApplication/
, non è possibile firmarlo nel manifesto di distribuzione che risiede in http://www.adatum.com/MyApplication/
. È possibile eseguire una delle due operazioni seguenti:
Indicare agli utenti di disinstallare la versione precedente e installare la nuova versione dal nuovo percorso.
Includere un aggiornamento in
http://www.adatum.com/MyApplication/
che include undeploymentProvider
puntatore ahttp://www.adatum.com/MyApplication/
. Rilasciare quindi un altro aggiornamento in un secondo momento condeploymentProvider
il puntatore ahttp://subdomain.adatum.com/MyApplication/
.Nel secondo esempio si pubblica un'applicazione ClickOnce che specifica
deploymentProvider
e quindi si decide di rimuoverla. Una volta scaricata la nuova versione senzadeploymentProvider
i client, non è possibile reindirizzare il percorso usato per gli aggiornamenti fino a quando non si rilascia una versione dell'applicazionedeploymentProvider
ripristinata. Come per il primo esempio,deploymentProvider
deve puntare inizialmente al percorso di aggiornamento corrente, non alla nuova posizione. In questo caso, se si tenta di inserire un oggettodeploymentProvider
che fa riferimento ahttp://subdomain.adatum.com/MyApplication/
, l'aggiornamento successivo ha esito negativo.
Creare una distribuzione
Per istruzioni dettagliate sulla creazione di distribuzioni che possono essere distribuite da percorsi di rete diversi, vedere Procedura dettagliata: Distribuire manualmente un'applicazione ClickOnce che non richiede la nuova firma e che mantiene le informazioni di personalizzazione.