Procedura dettagliata: creazione di un programma di avvio automatico per visualizzare un prompt di privacy
È possibile configurare le applicazioni ClickOnce in modo che vengano aggiornate automaticamente quando diventano disponibili assembly con versioni di file e di assembly più recenti.Per assicurarsi che i clienti acconsentano a questo comportamento, è possibile visualizzare un prompt di privacy.I clienti possono quindi scegliere se concedere l'autorizzazione per l'aggiornamento automatico dell'applicazione.Se l'aggiornamento automatico non viene consentito, l'applicazione non verrà installata.
[!NOTA]
Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.
Prerequisiti
Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:
- Visual Studio 2010.
Creazione di una finestra di dialogo di consenso all'aggiornamento
Per visualizzare un prompt di privacy, creare un'applicazione che richieda al lettore di acconsentire agli aggiornamenti automatici per l'applicazione.
Per creare una finestra di dialogo di consenso
Scegliere Nuovo dal menu File, quindi fare clic su Progetto.
Nella finestra di dialogo Nuovo progetto fare clic su Windows, quindi scegliere ApplicazioneWindowsForm.
In Nome digitare ConsentDialog, quindi fare clic su OK.
Nella finestra di progettazione fare clic sul form.
Nella finestra Proprietà impostare la proprietà Text su Update Consent Dialog.
Nella Casella degli strumenti espandere Tutti i Windows Form e trascinare il controllo Label nel form.
Nella finestra di progettazione fare clic sul controllo etichetta.
Nella finestra Proprietà modificare la proprietà Text in Aspetto nel modo seguente:
L'applicazione che si sta per installare controlla gli ultimi aggiornamenti nel Web.Facendo clic su "Accetto", si autorizza l'applicazione a verificare e installare automaticamente gli aggiornamenti da Internet.
Nella Casella degli strumenti trascinare il controllo CheckBox al centro del form.
Nella finestra Proprietà impostare la proprietà Text in Layout su Accetto.
Nella Casella degli strumenti trascinare il controllo Button in basso a sinistra nel form.
Nella finestra Proprietà impostare la proprietà Text in Layout su Continua.
Nella finestra Proprietà impostare la proprietà (Name) in Design su ProceedButton.
Nella Casella degli strumenti trascinare il controllo Button in basso a destra nel form.
Nella finestra Proprietà impostare la proprietà Text in Layout su Annulla.
Nella finestra Proprietà impostare la proprietà (Nome) in Design su CancelButton.
Nella finestra di progettazione fare doppio clic sulla casella di controllo Accetto per generare il gestore dell'evento CheckedChanged.
Nel file di codice Form1 aggiungere il codice seguente per il gestore dell'evento CheckedChanged.
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged ProceedButton.Enabled = Not ProceedButton.Enabled End Sub
private void checkBox1_CheckedChanged(object sender, EventArgs e) { ProceedButton.Enabled = !ProceedButton.Enabled; }
Aggiornare il costruttore di classe per disabilitare il pulsante Continua per impostazione predefinita.
Public Sub New() InitializeComponent() ProceedButton.Enabled = False End Sub
public Form1() { InitializeComponent(); ProceedButton.Enabled = false; }
Nel file di codice Form1, aggiungere il codice seguente per consentire a una variabile booleana di tenere traccia del consenso agli aggiornamenti online da parte dell'utente finale.
Public accepted As Boolean = False
public bool accepted = false;
Nella finestra di progettazione fare doppio clic sul pulsante Continua per generare il gestore dell'evento Click.
Nel file di codice Form1 aggiungere il codice seguente al gestore dell'evento Click per il pulsante Continua.
Private Sub ProceedButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProceedButton.Click If ProceedButton.Enabled Then accepted = True Me.Close() End If End Sub
private void ProceedButton_Click(object sender, EventArgs e) { if (ProceedButton.Enabled) { accepted = true; this.Close(); } }
Nella finestra di progettazione fare doppio clic sul pulsante Annulla per generare il gestore dell'evento Click.
Nel file di codice Form1 aggiungere il codice seguente per il gestore dell'evento Click per il pulsante Annulla.
Private Sub CancelButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CancelButton.Click Me.Close() End Sub
private void CancelButton_Click(object sender, EventArgs e) { this.Close(); }
Aggiornare l'applicazione in modo da restituire un errore se l'utente finale non acconsente agli aggiornamenti online.
Solo per sviluppatori Visual Basic:
In Esplora soluzioni fare clic su ConsentDialog.
Scegliere Aggiungi modulo dal menu Progetto, quindi fare clic su Aggiungi.
Nel file di codice Module1.vb aggiungere il codice seguente.
Module Module1 Function Main() As Integer Application.EnableVisualStyles() Application.SetCompatibleTextRenderingDefault(False) Dim f As New Form1() Application.Run(f) If (Not f.accepted) Then Return -1 Else Return 0 End If End Function End Module
Scegliere Proprietà ConsentDialog dal menu Progetto, quindi fare clic sulla schedaApplicazione.
Deselezionare Abilita framework applicazione.
Nel menu a discesa Oggetto di avvio selezionare Module1.
[!NOTA]
Disabilitando il framework applicazione vengono disabilitate funzionalità quali gli stili di visualizzazione di Windows XP, gli eventi applicazioni, la schermata iniziale, l'applicazione a istanza singola e altro ancora.Per ulteriori informazioni, vedere Pagina Applicazione, Progettazione progetti (Visual Basic).
Solo per sviluppatori Visual C#:
Aprire il file di codice Program.cs e aggiungervi il codice seguente.
static int Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form1 f = new Form1(); Application.Run(f); if (!f.accepted) return -1; else return 0; }
Dal menu Compila, scegliere CompilaSoluzione.
Creazione del pacchetto del programma di avvio automatico personalizzato
Per visualizzare il prompt di privacy agli utenti finali, è possibile creare un pacchetto del programma di avvio automatico personalizzato per l'applicazione della finestra di consenso all'aggiornamento e includerlo come prerequisito in tutte le applicazioni ClickOnce.
Questa procedura dimostra come creare un pacchetto del programma di avvio automatico personalizzato creando i documenti seguenti:
Un file manifesto product.xml per descrivere il contenuto del programma di avvio automatico.
Un file manifesto package.xml per elencare gli aspetti specifici della localizzazione del pacchetto, ad esempio le stringhe e le condizioni di licenza software.
Un documento per le condizioni di licenza software.
Passaggio 1: per creare la directory del programma di avvio automatico.
Creare una directory denominata UpdateConsentDialog in %PROGRAMMI%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages.
[!NOTA]
Potrebbe essere necessario disporre di privilegi amministrativi per creare questa cartella.
Nella directory UpdateConsentDialog, creare una sottodirectory denominata en.
[!NOTA]
Creare una nuova directory per ogni impostazione locale.Ad esempio, è possibile aggiungere sottodirectory per le impostazioni locali fr e de.Queste directory potrebbero contenere le stringhe e i Language Pack francesi e tedeschi, se necessario.
Passaggio 2: per creare il file manifesto product.xml
Creare un file di testo denominato product.xml.
Nel file product.xml aggiungere il codice XML seguente.Assicurarsi di non sovrascrivere il codice XML esistente.
<Product xmlns="https://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="Microsoft.Sample.EULA"> <!-- Defines the list of files to be copied on build. --> <PackageFiles CopyAllPackageFiles="false"> <PackageFile Name="ConsentDialog.exe"/> </PackageFiles> <!-- Defines how to run the Setup package.--> <Commands > <Command PackageFile = "ConsentDialog.exe" Arguments=''> <ExitCodes> <ExitCode Value="0" Result="Success" /> <ExitCode Value="-1" Result="Fail" String="AU_Unaccepted" /> <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" /> </ExitCodes> </Command> </Commands> </Product>
Salvare il file nella directory del programma di avvio automatico UpdateConsentDialog.
Passaggio 3: per creare il file manifesto package.xml e le condizioni di licenza software
Creare un file di testo denominato package.xml.
Nel file package.xml, aggiungere il codice XML seguente per definire le impostazioni locali e includere le condizioni di licenza software.Assicurarsi di non sovrascrivere il codice XML esistente.
<Package xmlns="https://schemas.microsoft.com/developer/2004/01/bootstrapper" Name="DisplayName" Culture="Culture" LicenseAgreement="eula.rtf"> <PackageFiles> <PackageFile Name="eula.rtf"/> </PackageFiles> <!-- Defines a localizable string table for error messages. --> <Strings> <String Name="DisplayName">Update Consent Dialog</String> <String Name="Culture">en</String> <String Name="AU_Unaccepted">The automatic update agreement is not accepted.</String> <String Name="GeneralFailure">A failure occurred attempting to launch the setup.</String> </Strings> </Package>
Salvare il file nella sottodirectory en della directory del programma di avvio automatico UpdateConsentDialog.
Creare un documento denominato eula.rtf per le condizioni di licenza software.
[!NOTA]
Le condizioni di licenza software devono includere informazioni su licenza, garanzie, responsabilità e leggi locali.Questi file devono essere specifici delle impostazioni locali, pertanto accertarsi che il file venga salvato in un formato che supporti i caratteri Multibyte Character Set o Unicode.Consultare il proprio ufficio legale per il contenuto delle condizioni di licenza software.
Salvare il documento nella sottodirectory en della directory del programma di avvio automatico UpdateConsentDialog.
Se necessario, creare un nuovo file manifesto package.xml e un nuovo documento eula.rtf per le condizioni di licenza software per ciascuna impostazione locale.Ad esempio, se sono state create sottodirectory per le impostazioni locali fr e de, creare file manifesto package.xml e condizioni di licenza software separati e salvarli nelle sottodirectory fr e de.
Impostazione dell'applicazione di consenso all'aggiornamento come prerequisito
In Visual Studio è possibile impostare l'applicazione di consenso all'aggiornamento come prerequisito.
Per impostare l'applicazione di consenso all'aggiornamento come prerequisito
In Esplora soluzioni fare clic sul nome dell'applicazione che si desidera distribuire.
Scegliere ProprietàNomeprogetto dal menu Progetto.
Fare clic sulla pagina Pubblica e quindi su Prerequisiti.
Selezionare Update Consent Dialog.
[!NOTA]
È possibile che sia necessario chiudere e riaprire Visual Studio per vedere la finestra di consenso all'aggiornamento nella finestra di dialogo Prerequisiti.
Scegliere OK.
Creazione e test del programma di installazione
Dopo aver impostato l'applicazione di consenso all'aggiornamento come prerequisito, è possibile generare il programma di installazione e il programma di avvio automatico per l'applicazione.
Per creare e testare il programma di installazione non facendo clic su Accetto
In Esplora soluzioni fare clic sul nome dell'applicazione che si desidera distribuire.
Scegliere ProprietàNomeprogetto dal menu Progetto.
Fare clic sulla pagina Pubblica e quindi su Pubblica.
Se l'output di pubblicazione non viene visualizzato automaticamente, visualizzarlo manualmente.
Eseguire il programma Setup.exe.
Il programma di installazione mostra il contratto di licenza software della finestra di consenso all'aggiornamento.
Leggere il contratto di licenza software, quindi fare clic su Accetta.
Viene visualizzata l'applicazione della finestra di consenso all'aggiornamento e viene mostrato il testo seguente: L'applicazione che si sta per installare controlla gli ultimi aggiornamenti nel Web.Facendo clic su Accetto, si autorizza l'applicazione a verificare automaticamente gli aggiornamenti in Internet.
Chiudere l'applicazione o fare clic su Annulla.
Viene visualizzato un errore: Errore durante l'installazione dei componenti di sistema per NomeApplicazione.Impossibile continuare fino alla corretta installazione di tutti i componenti di sistema.
Fare clic su Dettagli per visualizzare il messaggio di errore seguente: Impossibile installare il componente Update Consent Dialog. Messaggi di errore: "Il contratto di aggiornamento automatico non è stato accettato." Impossibile installare i seguenti componenti: - Update Consent Dialog
Fare clic su Chiudi.
Per creare e testare il programma di installazione facendo clic su Accetto
In Esplora soluzioni fare clic sul nome dell'applicazione che si desidera distribuire.
Scegliere ProprietàNomeprogetto dal menu Progetto.
Fare clic sulla pagina Pubblica e quindi su Pubblica.
Se l'output di pubblicazione non viene visualizzato automaticamente, visualizzarlo manualmente.
Eseguire il programma Setup.exe.
Il programma di installazione mostra il contratto di licenza software della finestra di consenso all'aggiornamento.
Leggere il contratto di licenza software, quindi fare clic su Accetta.
Viene visualizzata l'applicazione della finestra di consenso all'aggiornamento e viene mostrato il testo seguente: L'applicazione che si sta per installare controlla gli ultimi aggiornamenti nel Web.Facendo clic su Accetto, si autorizza l'applicazione a verificare automaticamente gli aggiornamenti in Internet.
Fare clic su Accetto, quindi su Continua.
L'installazione dell'applicazione viene avviata.
Se viene visualizzata la finestra di dialogo Installazione applicazione, fare clic su Installa.
Vedere anche
Attività
Procedura: creare il manifesto di un prodotto
Procedura: creare un manifesto di pacchetto
Riferimenti
Riferimenti dello schema di prodotti e package