Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Bootstrappers zum Anzeigen einer Datenschutzeingabeaufforderung
Sie können ClickOnce-Anwendungen so konfigurieren, dass sie automatisch aktualisiert werden, wenn Assemblys mit neueren Dateiversionen und Assemblyversionen verfügbar werden. Um sicherzustellen, dass die Kunden diesem Verhalten zustimmen, können Sie eine Datenschutzeingabeaufforderung anzeigen. Dann können die Kunden entscheiden, ob sie die Berechtigung zur automatischen Aktualisierung der Anwendung erteilen möchten. Wenn die automatische Aktualisierung der Anwendung nicht gestattet wird, findet keine Installation statt.
Tipp
Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.
Vorbereitungsmaßnahmen
Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:
- Visual Studio 2010
Erstellen eines Dialogfelds zur Updatezustimmung
Um eine Datenschutzeingabeaufforderung anzuzeigen, erstellen Sie eine Anwendung, die die Zustimmung des Lesers zur Installation automatischer Updates für die Anwendung einholt.
So erstellen Sie ein Zustimmungsdialogfeld
Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.
Klicken Sie im Dialogfeld Neues Projekt auf Windows, und klicken Sie dann auf Windows Forms-Anwendung.
Geben Sie als Name "ConsentDialog" ein, und klicken Sie dann auf OK.
Klicken Sie im Designer auf das Formular.
Ändern Sie im Eigenschaftenfenster die Eigenschaft Text in Update Consent Dialog.
Erweitern Sie in der Toolbox den Eintrag Alle Windows Forms, und ziehen Sie ein Label-Steuerelement in das Formular.
Klicken Sie im Designer auf das Label-Steuerelement.
Ändern Sie im Eigenschaftenfenster die Text-Eigenschaft unter Darstellung in Folgendes:
The application that you are about to install checks for the latest updates on the Web. By clicking on "I Agree", you authorize the application to check for and install updates automatically from the Internet.
Ziehen Sie in der Toolbox ein Checkbox-Steuerelement in die Mitte des Formulars.
Ändern Sie im Eigenschaftenfenster die Text-Eigenschaft unter Layout in I Agree.
Ziehen Sie in der Toolbox ein Button-Steuerelement unten links in das Formular.
Ändern Sie im Eigenschaftenfenster die Text-Eigenschaft unter Layout in Proceed.
Ändern Sie im Eigenschaftenfenster die (Name)-Eigenschaft unter Entwurf in "ProceedButton".
Ziehen Sie in der Toolbox ein Button-Steuerelement unten rechts in das Formular.
Ändern Sie im Eigenschaftenfenster die Text-Eigenschaft unter Layout in Cancel.
Ändern Sie im Eigenschaftenfenster die (Name)-Eigenschaft unter Entwurf in "CancelButton".
Doppelklicken Sie im Designer auf das Kontrollkästchen I Agree, um den CheckedChanged-Ereignishandler zu generieren.
Fügen Sie in der Form1-Codedatei den folgenden Code für den CheckedChanged-Ereignishandler hinzu.
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; }
Aktualisieren Sie den Klassenkonstruktor, um die Schaltfläche Proceed standardmäßig zu deaktivieren.
Public Sub New() InitializeComponent() ProceedButton.Enabled = False End Sub
public Form1() { InitializeComponent(); ProceedButton.Enabled = false; }
Fügen Sie in der Form1-Codedatei den folgenden Code für eine zu verfolgende boolesche Variable hinzu, wenn der Endbenutzer der Installation von Onlineupdates zugestimmt hat.
Public accepted As Boolean = False
public bool accepted = false;
Doppelklicken Sie im Designer auf die Schaltfläche Proceed, um einen Click-Ereignishandler zu generieren.
Fügen Sie in der Form1-Codedatei dem Click-Ereignishandler den folgenden Code für die Schaltfläche Proceed hinzu.
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(); } }
Doppelklicken Sie im Designer auf die Schaltfläche Cancel, um einen Click-Ereignishandler zu generieren.
Fügen Sie in der Form1-Codedatei dem Click-Ereignishandler den folgenden Code für die Schaltfläche Cancel hinzu.
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(); }
Aktualisieren Sie die Anwendung so, dass ein Fehler zurückgegeben wird, wenn der Endbenutzer den Onlineupdates nicht zustimmt.
Nur für Visual Basic-Entwickler:
Klicken Sie im Projektmappen-Explorer auf ConsentDialog.
Klicken Sie im Menü Projekt auf Modul hinzufügen, und klicken Sie dann auf Hinzufügen.
Fügen Sie in der Module1.vb-Codedatei den folgenden Code hinzu.
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
Klicken Sie im Menü Projekt auf ConsentDialog-Eigenschaften, und klicken Sie dann auf die Registerkarte Anwendung.
Deaktivieren Sie Anwendungsframework aktivieren.
Wählen Sie im Dropdownmenü Startobjekt den Eintrag Module1 aus.
Tipp
Durch Deaktivieren des Anwendungsframeworks werden Funktionen wie z. B. visuelle Windows XP-Stile, Anwendungsereignisse, Begrüßungsbildschirm, einzelne Instanzanwendung und mehr deaktiviert. Weitere Informationen finden Sie unter Seite "Anwendung", Projekt-Designer (Visual Basic).
Nur für Visual C#-Entwickler:
Öffnen Sie die Program.cs-Codedatei, und fügen Sie den folgenden Code hinzu.
static int Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form1 f = new Form1(); Application.Run(f); if (!f.accepted) return -1; else return 0; }
Klicken Sie im Menü Erstellen auf Projektmappe erstellen.
Erstellen des benutzerdefinierten Bootstrapperpakets
Um für Endbenutzer die Datenschutzeingabeaufforderung anzuzeigen, können Sie ein benutzerdefiniertes Bootstrapperpaket für die Anwendung "Dialogfeld zur Updatezustimmung" erstellen und es als erforderliche Komponente in alle ClickOnce-Anwendungen einschließen.
Diese Prozedur veranschaulicht, wie ein benutzerdefiniertes Bootstrapperpaket erstellt wird, indem folgende Dokumente erstellt werden:
Eine product.xml-Manifestdatei, um den Inhalt des Bootstrappers zu beschreiben.
Eine package.xml-Manifestdatei, um die lokalisierungsspezifischen Aspekte des Pakets aufzulisten, z. B. Zeichenfolgen und die Softwarelizenzbedingungen.
Ein Dokument für die Softwarelizenzbedingungen.
Schritt 1: So erstellen Sie das Bootstrapperverzeichnis
Erstellen Sie ein Verzeichnis namens "UpdateConsentDialog" unter %PROGRAMME%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages".
Tipp
Sie benötigen möglicherweise Administratorrechte, um diesen Ordner zu erstellen.
Erstellen Sie im UpdateConsentDialog-Verzeichnis ein Unterverzeichnis namens "en".
Tipp
Erstellen Sie ein neues Verzeichnis für jedes Gebietsschema. Sie können z. B. Unterverzeichnisse für die Gebietsschemas "fr" und "de" hinzufügen. Diese Verzeichnisse würden die französischen und deutschen Zeichenfolgen und ggf. Language Packs enthalten.
Schritt 2: So erstellen Sie die product.xml-Manifestdatei
Erstellen Sie eine Textdatei mit dem Namen product.xml.
Fügen Sie der Datei "product.xml" den folgenden XML-Code hinzu. Stellen Sie sicher, dass Sie den vorhandenen XML-Code nicht überschreiben.
<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>
Speichern Sie die Datei im UpdateConsentDialog-Bootstrapperverzeichnis.
Schritt 3: So erstellen Sie die package.xml-Manifestdatei und die Softwarelizenzbedingungen
Erstellen Sie eine Textdatei mit dem Namen package.xml.
Fügen Sie der Datei "package.xml" den folgenden XML-Code hinzu, um das Gebietsschema zu definieren und die Softwarelizenzbedingungen einzuschließen. Stellen Sie sicher, dass Sie den vorhandenen XML-Code nicht überschreiben.
<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>
Speichern Sie die Datei im Unterverzeichnis "en" im UpdateConsentDialog-Bootstrapperverzeichnis.
Erstellen Sie ein Dokument mit dem Namen "eula.rtf" für die Softwarelizenzbedingungen.
Tipp
Die Softwarelizenzbedingungen sollten Informationen zu Lizenzierung, Gewährleistungen, Haftungen und lokalen Gesetzen einschließen. Diese Dateien sollten gebietsschemaspezifisch sein. Stellen Sie daher sicher, dass die Datei in einem Format gespeichert wird, das MBCS- oder UNICODE-Zeichen unterstützt. Wenden Sie sich bezüglich des Inhalts der Softwarelizenzbedingungen an die Rechtsabteilung.
Speichern Sie das Dokument im Unterverzeichnis "en" im UpdateConsentDialog-Bootstrapperverzeichnis.
Erstellen Sie bei Bedarf für jedes Gebietsschema eine neue package.xml-Manifestdatei und ein neues eula.rtf-Dokument für die Softwarelizenzbedingungen. Wenn Sie z. B. Unterverzeichnisse für die Gebietsschemas "fr" und "de" erstellt haben, erstellen Sie separate package.xml-Manifestdateien und Softwarelizenzbedingungen, und speichern Sie diese in den Unterverzeichnissen "fr" und "de".
Festlegen der Anwendung zur Updatezustimmung als erforderliche Komponente
In Visual Studio können Sie die Anwendung zur Updatezustimmung als erforderliche Komponente festlegen.
So legen Sie die Anwendung zur Updatezustimmung als erforderliche Komponente fest
Klicken Sie im Projektmappen-Explorer auf den Namen der Anwendung, die Sie bereitstellen möchten.
Klicken Sie im Menü Projekt auf Projektname-Eigenschaften.
Klicken Sie auf die Seite Veröffentlichen und dann auf Erforderliche Komponenten.
Wählen Sie Dialogfeld zur Updatezustimmung aus.
Tipp
Sie müssen möglicherweise Visual Studio schließen und erneut öffnen, um das Dialogfeld zur Updatezustimmung im Dialogfeld "Erforderliche Komponenten" zu sehen.
Klicken Sie auf OK.
Erstellen und Testen des Setupprogramms
Nachdem Sie die Anwendung zur Updatezustimmung als erforderliche Komponente festgelegt haben, können Sie das Installationsprogramm und den Bootstrapper für die Anwendung generieren.
So erstellen und testen Sie das Setupprogramm, indem Sie nicht auf "Ich stimme zu" klicken
Klicken Sie im Projektmappen-Explorer auf den Namen der Anwendung, die Sie bereitstellen möchten.
Klicken Sie im Menü Projekt auf Projektname-Eigenschaften.
Klicken Sie auf die Seite Veröffentlichen, und klicken Sie dann auf Jetzt veröffentlichen.
Wenn die Veröffentlichungsausgabe nicht automatisch geöffnet wird, navigieren Sie zur Veröffentlichungsausgabe.
Führen Sie das Programm "Setup.exe" aus.
Das Setupprogramm zeigt den Softwarelizenzvertrag für das Dialogfeld zur Updatezustimmung an.
Lesen Sie den Softwarelizenzvertrag, und klicken Sie dann auf Zustimmen.
Das Dialogfeld zur Updatezustimmung wird mit dem folgenden Text angezeigt: Von der Anwendung, die Sie installieren möchten, wird geprüft, ob im Internet aktuelle Updates zur Verfügung stehen. Sie autorisieren die Anwendung, im Internet automatisch nach Updates zu suchen und diese zu installieren, indem Sie auf "Ich stimme zu" klicken.
Schließen Sie die Anwendung, oder klicken Sie auf Abbrechen.
Die Anwendung zeigt einen Fehler an: Fehler beim Installieren der Systemkomponenten für ApplicationName. Setup kann erst fortgesetzt werden, wenn alle Systemkomponenten erfolgreich installiert wurden.
Klicken Sie auf Details, um die folgende Fehlermeldung anzuzeigen: Fehler bei der Installation der Komponente "Dialogfeld zur Updatezustimmung" hat nicht mit der folgenden Fehlermeldung installiert: "Die Vereinbarung für automatische Updates wird nicht akzeptiert. Fehler bei der Installation der folgenden Komponenten: - Dialogfeld zur Updatezustimmung
Klicken Sie auf Schließen.
So erstellen und testen Sie das Setupprogramm, indem Sie auf "Ich stimme zu" klicken
Klicken Sie im Projektmappen-Explorer auf den Namen der Anwendung, die Sie bereitstellen möchten.
Klicken Sie im Menü Projekt auf Projektname-Eigenschaften.
Klicken Sie auf die Seite Veröffentlichen, und klicken Sie dann auf Jetzt veröffentlichen.
Wenn die Veröffentlichungsausgabe nicht automatisch geöffnet wird, navigieren Sie zur Veröffentlichungsausgabe.
Führen Sie das Programm "Setup.exe" aus.
Das Setupprogramm zeigt den Softwarelizenzvertrag für das Dialogfeld zur Updatezustimmung an.
Lesen Sie den Softwarelizenzvertrag, und klicken Sie dann auf Zustimmen.
Das Dialogfeld zur Updatezustimmung wird mit dem folgenden Text angezeigt: Von der Anwendung, die Sie installieren möchten, wird geprüft, ob im Internet aktuelle Updates zur Verfügung stehen. Sie autorisieren die Anwendung, im Internet automatisch nach Updates zu suchen und diese zu installieren, indem Sie auf "Ich stimme zu" klicken.
Klicken Sie auf Ich stimme zu und dann auf Fortsetzen.
Die Anwendungsinstallation beginnt.
Wenn das Dialogfeld "Anwendungsinstallation" angezeigt wird, klicken Sie auf Installieren.
Siehe auch
Referenz
Referenz zum Produkt- und Paketschema
Konzepte
Vorbedingungen für die Anwendungsbereitstellung
Erstellen von Bootstrapperpaketen