Condividi tramite


Distribuzione e sicurezza ClickOnce

ClickOnce è una tecnologia di distribuzione che consente di creare applicazioni basate su Windows che possono essere installate ed eseguite con un'interazione utente minima. Visual Studio offre supporto completo per la pubblicazione e l'aggiornamento di applicazioni distribuite con la tecnologia ClickOnce se i progetti sono stati sviluppati con Visual Basic e Visual C#. Per informazioni sulla distribuzione di applicazioni Visual C++, vedere Distribuzione ClickOnce per applicazioni Visual C++.

La distribuzione clickOnce supera tre problemi principali nella distribuzione:

  • Difficoltà nell'aggiornamento delle applicazioni. Con la distribuzione di Microsoft Windows Installer, ogni volta che un'applicazione viene aggiornata, l'utente può installare un aggiornamento, un file msp e applicarlo al prodotto installato; con la distribuzione ClickOnce, è possibile fornire automaticamente gli aggiornamenti. Solo le parti dell'applicazione modificate vengono scaricate e quindi l'applicazione completa aggiornata viene reinstallata da una nuova cartella side-by-side.

  • Impatto sul computer dell'utente. Con la distribuzione di Windows Installer, le applicazioni spesso si basano su componenti condivisi, con il rischio di conflitti di controllo delle versioni; con la distribuzione ClickOnce, ogni applicazione è autonoma e non può interferire con altre applicazioni.

  • Autorizzazioni di sicurezza. La distribuzione di Windows Installer richiede autorizzazioni amministrative e consente solo l'installazione limitata dell'utente; La distribuzione ClickOnce consente agli utenti non amministratori di installare e concedere solo le autorizzazioni di sicurezza dall'accesso di codice necessarie per l'applicazione.

    In passato, questi problemi causavano talvolta agli sviluppatori di decidere di creare applicazioni Web invece di applicazioni basate su Windows, sacrificando un'interfaccia utente avanzata per facilitare l'installazione. Usando le applicazioni distribuite con ClickOnce, è possibile sfruttare al meglio entrambe le tecnologie.

Che cos'è un'applicazione ClickOnce?

Un'applicazione ClickOnce è qualsiasi Windows Presentation Foundation (.xbap), Windows Forms (.exe), applicazione console (.exe) o soluzione Office (.dll) pubblicata con la tecnologia ClickOnce. È possibile pubblicare un'applicazione ClickOnce in tre modi diversi: da una pagina Web, da una condivisione file di rete o da supporti legacy, ad esempio un CD-ROM. Un'applicazione ClickOnce può essere installata nel computer di un utente finale ed eseguita localmente anche quando il computer è offline oppure può essere eseguito in modalità solo online senza installare definitivamente alcun elemento nel computer dell'utente finale. Per altre informazioni, vedere Scegliere una strategia di distribuzione ClickOnce.

Le applicazioni ClickOnce possono essere auto-aggiornabili; possono verificare la presenza di versioni più recenti man mano che diventano disponibili e sostituiscono automaticamente tutti i file aggiornati. Lo sviluppatore può specificare il comportamento di aggiornamento; Un amministratore di rete può anche controllare le strategie di aggiornamento, ad esempio contrassegnando un aggiornamento come obbligatorio. È anche possibile eseguire il rollback degli aggiornamenti a una versione precedente dall'utente finale o da un amministratore. Per altre informazioni, vedere Scegliere una strategia di aggiornamento ClickOnce.

Poiché le applicazioni ClickOnce sono isolate, l'installazione o l'esecuzione di un'applicazione ClickOnce non può interrompere le applicazioni esistenti. Le applicazioni ClickOnce sono autonome; ogni applicazione ClickOnce viene installata ed eseguita da una cache sicura per utente, per applicazione. Le applicazioni ClickOnce vengono eseguite nelle aree di sicurezza Internet o Intranet. Se necessario, l'applicazione può richiedere autorizzazioni di sicurezza elevate. Per altre informazioni, vedere applicazioni ClickOnce sicure.

Funzionamento della sicurezza ClickOnce

La sicurezza ClickOnce di base si basa su certificati, criteri di sicurezza di accesso al codice e richiesta di attendibilità ClickOnce.

Certificati

I certificati Authenticode vengono usati per verificare l'autenticità dell'autore dell'applicazione. Usando Authenticode per la distribuzione dell'applicazione, ClickOnce impedisce a un programma dannoso di rappresentare se stesso come un programma legittimo proveniente da un'origine stabilita e affidabile. Facoltativamente, i certificati possono essere usati anche per firmare i manifesti dell'applicazione e della distribuzione per dimostrare che i file non sono stati manomessi. Per altre informazioni, vedere ClickOnce e Authenticode. I certificati possono essere usati anche per configurare i computer client in modo che dispongano di un elenco di autori attendibili. Se un'applicazione proviene da un autore attendibile, può essere installata senza alcuna interazione dell'utente. Per altre informazioni, vedere Panoramica della distribuzione di applicazioni attendibili.

Sicurezza dell'accesso al codice

La sicurezza dell'accesso al codice consente di limitare l'accesso al codice alle risorse protette. Nella maggior parte dei casi, è possibile scegliere le aree Internet o Intranet locale per limitare le autorizzazioni. Usare la pagina sicurezza nella di Progettazione progetti di per richiedere l'area appropriata per l'applicazione. È anche possibile eseguire il debug di applicazioni con autorizzazioni limitate per emulare l'esperienza dell'utente finale. Per altre informazioni, vedere Sicurezza dell'accesso al codice per le applicazioni ClickOnce.

Nota

In ClickOnce per .NET Core e .NET 5 o versione successiva questa funzionalità non è supportata. Per altre informazioni, vedere ClickOnce per .NET.

Richiesta di attendibilità ClickOnce

Se l'applicazione richiede più autorizzazioni rispetto all'area consentita, all'utente finale può essere richiesto di prendere una decisione di attendibilità. L'utente finale può decidere se le applicazioni ClickOnce, ad esempio applicazioni Windows Form, applicazioni Windows Presentation Foundation, applicazioni console, applicazioni browser XAML e soluzioni Office sono attendibili per l'esecuzione. Per ulteriori informazioni, consulta Come configurare il comportamento del prompt di attendibilità ClickOnce.

Funzionamento della distribuzione ClickOnce

L'architettura di distribuzione ClickOnce di base si basa su due file manifesto XML: un manifesto dell'applicazione e un manifesto della distribuzione. I file vengono usati per descrivere da dove vengono installate le applicazioni ClickOnce, il modo in cui vengono aggiornate e quando vengono aggiornate.

Pubblicare applicazioni ClickOnce

Il manifesto dell'applicazione descrive l'applicazione stessa. Sono inclusi gli assembly, le dipendenze e i file che costituiscono l'applicazione, le autorizzazioni necessarie e il percorso in cui saranno disponibili gli aggiornamenti. Lo sviluppatore dell'applicazione crea il manifesto dell'applicazione usando la Pubblicazione guidata in Visual Studio (strumento di pubblicazione per .NET Core e .NET 5+) o lo strumento di generazione e modifica del manifesto (Mage.exe) in Windows Software Development Kit (SDK). Per altre informazioni, vedere:

Il manifesto della distribuzione descrive come viene distribuita l'applicazione. Sono inclusi il percorso del manifesto dell'applicazione e la versione dell'applicazione che i client devono eseguire.

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.

Distribuire applicazioni ClickOnce

Una volta creato, il manifesto della distribuzione viene copiato nel percorso di distribuzione. Può trattarsi di un server Web, di una condivisione file di rete o di un supporto legacy, ad esempio un CD. Anche il manifesto dell'applicazione e tutti i file dell'applicazione vengono copiati in un percorso di distribuzione specificato nel manifesto della distribuzione. Può essere uguale alla sede di distribuzione oppure può essere una sede diversa. Quando si usa il Pubblicazione Guidata in Visual Studio, le operazioni di copia vengono eseguite automaticamente.

Installare applicazioni ClickOnce

Dopo la distribuzione nel percorso di distribuzione, gli utenti finali possono scaricare e installare l'applicazione facendo clic su un'icona che rappresenta il file manifesto della distribuzione in una pagina Web o in una cartella. Nella maggior parte dei casi, all'utente finale viene visualizzata una finestra di dialogo semplice che chiede all'utente di confermare l'installazione, dopo la quale l'installazione procede e l'applicazione viene avviata senza intervento aggiuntivo. Nei casi in cui l'applicazione richiede autorizzazioni elevate o se l'applicazione non è firmata da un certificato attendibile, la finestra di dialogo chiede all'utente di concedere l'autorizzazione prima che l'installazione possa continuare. Anche se le installazioni ClickOnce sono per utente, l'elevazione delle autorizzazioni può essere necessaria se sono presenti prerequisiti che richiedono privilegi di amministratore. Per altre informazioni sulle autorizzazioni elevate, vedere Protezione delle applicazioni ClickOnce.

I certificati possono essere considerati attendibili a livello di computer o aziendale, in modo che le applicazioni ClickOnce firmate con un certificato attendibile possano essere installate automaticamente. Per altre informazioni sui certificati attendibili, vedere Panoramica della distribuzione di applicazioni attendibili.

L'applicazione può essere aggiunta al menu Start dell'utente e al gruppo Aggiungi o Rimuovi Programmi nel Pannello di controllo. A differenza di altre tecnologie di distribuzione, non viene aggiunto alcun elemento alla cartella programmi o al Registro di sistema e non sono necessari diritti amministrativi per l'installazione

Nota

È anche possibile impedire che l'applicazione venga aggiunta al menu start e gruppo Installazione applicazioni, in modo che si comporti come un'applicazione Web. Per altre informazioni, vedere Scegliere una strategia di distribuzione ClickOnce.

Aggiornare le applicazioni ClickOnce

Quando gli sviluppatori di applicazioni creano una versione aggiornata dell'applicazione, generano un nuovo manifesto dell'applicazione e copiano i file in un percorso di distribuzione, in genere una cartella di pari livello nella cartella di distribuzione dell'applicazione originale. L'amministratore aggiorna il manifesto della distribuzione in modo che punti al percorso della nuova versione dell'applicazione.

Nota

Per eseguire questi passaggi, è possibile usare pubblicazione guidata in Visual Studio. Per .NET Core e .NET 5+, lo strumento di pubblicazione fornisce questi passaggi.

Oltre al percorso di distribuzione, il manifesto della distribuzione contiene anche un percorso di aggiornamento (una pagina Web o una condivisione file di rete) in cui l'applicazione verifica la presenza di versioni aggiornate. Le proprietà di pubblicazione di ClickOnce vengono usate per specificare quando e con quale frequenza l'applicazione deve controllare aggiornamenti. Il comportamento di aggiornamento può essere specificato nel manifesto della distribuzione oppure può essere presentato come scelte utente nell'interfaccia utente dell'applicazione tramite le API ClickOnce. Inoltre, è possibile usare le Pubblica proprietà per rendere obbligatori gli aggiornamenti o ripristinare una versione precedente. Per ulteriori informazioni, consultare la sezione Scelta di una strategia di aggiornamento ClickOnce.

Programmi di installazione di terze parti

È possibile personalizzare il programma di installazione clickOnce per installare componenti di terze parti insieme all'applicazione. È necessario avere il pacchetto ridistribuibile (.exe o .msi file) e descrivere il pacchetto con un manifesto del prodotto indipendente dalla lingua e un manifesto del pacchetto specifico della lingua. Per altre informazioni, vedere Creazione di pacchetti bootstrapper.

Strumenti ClickOnce

La tabella seguente illustra gli strumenti che è possibile usare per generare, modificare, firmare e firmare nuovamente i manifesti dell'applicazione e della distribuzione. Per .NET Core e .NET 5+, le opzioni simili agli attributi di MSBuild vengono impostate usando il profilo di pubblicazione.

Strumento Descrizione
pagina sicurezza , progettazione progetti Firma i manifesti dell'applicazione e della distribuzione. Per .NET Core e .NET 5+, queste impostazioni si trovano nel profilo di pubblicazione.
Pagina di pubblicazione, Progettazione progetto Genera e modifica i manifesti dell'applicazione e della distribuzione per le applicazioni Visual Basic e Visual C#. Per .NET Core e .NET 5+, queste impostazioni si trovano nel profilo di pubblicazione.
Mage.exe (strumento di generazione e modifica del manifesto) Genera i manifesti dell'applicazione e della distribuzione per le applicazioni Visual Basic, Visual C# e Visual C++.

Firma e rifirma i manifesti dell'applicazione e della distribuzione.

Può essere eseguito da script batch e dal prompt dei comandi.
dotnetmage.exe (strumento di generazione e modifica del manifesto) Genera i manifesti dell'applicazione e della distribuzione per le applicazioni .NET 5+ C# e Visual Basic. L'utilizzo equivale a Mage.exe.

Firma e rifirma i manifesti dell'applicazione e della distribuzione.

Può essere eseguito da script batch e dal prompt dei comandi.
MageUI.exe (strumento di generazione e modifica del manifesto, client grafico) Genera e modifica i manifesti dell'applicazione e della distribuzione.

Firma e rifirma i manifesti dell'applicazione e della distribuzione.
attività GenerateApplicationManifest task Genera il manifesto dell'applicazione.

Può essere eseguito da MSBuild. Per altre informazioni, vedere il riferimento di MSBuild .
attività GenerateDeploymentManifest Genera il manifesto di distribuzione.

Può essere eseguito da MSBuild. Per altre informazioni, vedere il riferimento di MSBuild .
attività SignFile Firma i manifesti dell'applicazione e della distribuzione.

Può essere eseguito da MSBuild. Per altre informazioni, vedere il riferimento di MSBuild .
Microsoft.Build.Tasks.Deployment.ManifestUtilities Sviluppare un'applicazione personalizzata per generare i manifesti dell'applicazione e della distribuzione.

La tabella seguente illustra la versione di .NET Framework necessaria per supportare le applicazioni ClickOnce in questi browser.

Browser Versione di .NET Framework
Firefox 2.0 SP1, 3.5 SP1, 4
Cromo 3.5
Microsoft Edge 3.5