Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Bootstrappers zum Anzeigen einer Datenschutz-Eingabeaufforderung

Sie können ClickOnce-Anwendungen so konfigurieren, dass sie automatisch aktualisiert werden, wenn Assemblys mit neueren Dateiversionen und Assemblyversionen verfügbar werden. Damit Sie sicherstellen können, dass Ihre Kunden diesem Verhalten zustimmen, können Sie eine Datenschutzeingabeaufforderung für die Kunden anzeigen. Anschließend können sie auswählen, ob der Anwendung die Berechtigung für die automatische Aktualisierung erteilt werden soll. Wenn die Anwendung nicht automatisch aktualisiert werden darf, wird sie nicht installiert.

Hinweis

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in diesem Artikel. Möglicherweise verwenden Sie eine andere Edition von Visual Studio oder andere Umgebungseinstellungen. Weitere Informationen finden Sie unter Personalisieren der IDE.

Erstellen Sie zum Anzeigen einer Datenschutzeingabeaufforderung eine Anwendung, von der der Leser aufgefordert wird, automatischen Updates für die Anwendung zuzustimmen.

  1. Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.

  2. Klicken Sie im Dialogfeld Neues Projekt auf Windows, und klicken Sie dann auf WindowsFormsApplication.

  3. Geben Sie unter Name die Zeichenfolge ConsentDialog ein, und klicken Sie anschließend auf OK.

  4. Klicken Sie im Designer auf das Formular.

  5. Ändern Sie im Fenster Eigenschaften die Text-Eigenschaft in Dialogfeld „Einwilligung aktualisieren“.

  6. In der Toolbox erweitern Sie Alle Windows Forms und ziehen ein Label-Steuerelement in das Formular.

  7. Doppelklicken Sie im Designer auf das Label-Steuerelement.

  8. Ändern Sie im Fenster Eigenschaften die Text-Eigenschaft unter Darstellung wie folgt:

    Von der Anwendung, die Sie installieren möchten, wird eine Überprüfung auf die neuesten Updates im Web durchgeführt. Durch Klicken auf „Ich stimme zu“ autorisieren Sie die Anwendung, automatisch im Internet nach Updates zu suchen und diese zu installieren.

  9. Ziehen Sie in der Toolbox ein Kontrollkästchen-Steuerelement in die Mitte des Formulars.

  10. Ändern Sie im Fenster Eigenschaften die Text-Eigenschaft unter Layout in Ich stimme zu.

  11. Ziehen Sie in der Toolbox ein Schaltflächen-Steuerelement in den Bereich unten links im Formular.

  12. Ändern Sie im Fenster Eigenschaften die Text-Eigenschaft unter Layout in Vorgang fortsetzen.

  13. Ändern Sie im Fenster Eigenschaften die (Name)-Eigenschaft unter Entwurf in ProceedButton.

  14. Ziehen Sie in der Toolbox ein Schaltflächen-Steuerelement in den Bereich rechts unten im Formular.

  15. Ändern Sie im Fenster Eigenschaften die Text-Eigenschaft unter Layout in Abbrechen.

  16. Ändern Sie im Fenster Eigenschaften die (Name)-Eigenschaft unter Entwurf in CancelButton.

  17. Doppelklicken Sie im Designer auf das Kontrollkästchen Ich stimme zu, um den CheckedChanged-Ereignishandler zu generieren.

  18. Fügen Sie in der Form1-Codedatei den folgenden Code für den CheckedChanged-Ereignishandler hinzu.

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        ProceedButton.Enabled = !ProceedButton.Enabled;
    }
    
  19. Aktualisieren Sie den Klassenkonstruktor, um die Schaltfläche Vorgang fortsetzen standardmäßig zu deaktivieren.

    public Form1()
    {
        InitializeComponent();
        ProceedButton.Enabled = false;
    }
    
  20. Fügen Sie in der Form1-Codedatei den folgenden Code für eine boolesche Variable hinzu, um nachzuverfolgen, ob der Endbenutzer Onlineupdates zugestimmt hat.

    public bool accepted = false;
    
  21. Doppelklicken Sie im Designer auf die Schaltfläche Vorgang fortsetzen, um den Click-Ereignishandler zu generieren.

  22. Fügen Sie in der Form1-Codedatei den folgenden Code zum Click-Ereignishandler für die Schaltfläche Vorgang fortsetzen hinzu.

    private void ProceedButton_Click(object sender, EventArgs e)
    {
        if (ProceedButton.Enabled)
        {
            accepted = true;
            this.Close();
        }
    }
    
  23. Doppelklicken Sie im Designer auf die Schaltfläche Abbrechen, um den Click-Ereignishandler zu generieren.

  24. Fügen Sie in der Form1-Codedatei den folgenden Code für den Click-Ereignishandler für die Schaltfläche Abbrechen hinzu.

    private void CancelButton_Click(object sender, EventArgs e)
    {
        this.Close();
    }
    
  25. Aktualisieren Sie die Anwendung, damit ein Fehler zurückgegeben wird, wenn der Endbenutzer nicht mit Onlineupdates einverstanden ist.

    Nur für Visual Basic-Entwickler:

    1. Klicken Sie in Projektmappen-Explorer auf ConsentDialog.

    2. Klicken Sie im Menü Projekt auf Modul hinzufügen, und klicken Sie dann auf Hinzufügen.

    3. Fügen Sie in der Codedatei Module1.vb 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
      
    4. Klicken Sie im Menü Projekt auf ConsentDialog Properties (ConsentDialog-Eigenschaften), und klicken Sie dann auf die Registerkarte Anwendung.

    5. Deaktivieren Sie Anwendungsframework aktivieren.

    6. Wählen Sie im Dropdownmenü Startobjekt die Option Modul1 aus.

      Hinweis

      Durch die Deaktivierung des Anwendungsframeworks werden Features wie visuelle Stile, Anwendungsereignisse, Begrüßungsbildschirm, Einzelinstanzanwendung usw. deaktiviert. Weitere Informationen finden Sie unter Application Page, Project Designer (Visual Basic).

      Nur für Visual C#-Entwickler:

      Öffnen Sie die Codedatei Program.cs, 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;
      }
      
  26. Klicken Sie im Menü Erstellen auf BuildSolution.

Erstellen des benutzerdefinierten Bootstrapperpakets

Damit die Datenschutzeingabeaufforderung für Endbenutzer angezeigt wird, können Sie ein benutzerdefiniertes Bootstrapperpaket für die Anwendung für das Dialogfeld zum Aktualisieren der Einwilligung erstellen und es als Voraussetzung in alle ClickOnce-Anwendungen einschließen.

In diesem Verfahren wird veranschaulicht, wie Sie ein benutzerdefiniertes Bootstrapperpaket erstellen, indem Sie die folgenden Dokumente erstellen:

  • Eine product.xml-Manifestdatei zur Beschreibung des Inhalts des Bootstrappers.

  • Eine package.xml-Manifestdatei zum Auflisten der lokalisierungsspezifischen Aspekte des Pakets, z. B. Zeichenfolgen und Softwarelizenzbedingungen.

  • Ein Dokument für die Softwarelizenzbedingungen.

Schritt 1: Erstellen des Bootstrapperverzeichnisses

  1. Erstellen Sie ein Verzeichnis mit dem Namen UpdateConsentDialog unter %PROGRAMFILES%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages.

    Hinweis

    Möglicherweise benötigen Sie Administratorrechte, um diesen Ordner zu erstellen.

  2. Erstellen Sie im Verzeichnis UpdateConsentDialog ein Unterverzeichnis mit dem Namen en.

    Hinweis

    Erstellen Sie ein neues Verzeichnis für jedes Gebietsschema. Sie können beispielsweise Unterverzeichnisse für die Gebietsschemas „fr“ und „de“ hinzufügen. Diese Verzeichnisse enthalten bei Bedarf die französischen und deutschen Zeichenfolgen und Language Packs.

Schritt 2: Erstellen der product.xml-Manifestdatei

  1. Erstellen Sie eine Textdatei mit dem Namen product.xml.

  2. Fügen Sie in der Datei product.xml den folgenden XML-Code hinzu. Achten Sie darauf, dass Sie den vorhandenen XML-Code nicht überschreiben.

    <Product
      xmlns="http://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>
    
  3. Speichern Sie die Datei im Bootstrapperverzeichnis UpdateConsentDialog.

Schritt 3: Erstellen der package.xml-Manifestdatei und der Softwarelizenzbedingungen

  1. Erstellen Sie eine Textdatei namens package.xml.

  2. Fügen Sie in der Datei package.xml den folgenden XML-Code hinzu, um das Gebietsschema zu definieren und die Softwarelizenzbedingungen einzuschließen. Achten Sie darauf, dass Sie den vorhandenen XML-Code nicht überschreiben.

    <Package
      xmlns="http://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>
    
  3. Speichern Sie die Datei im Unterverzeichnis „en“ im Bootstrapperverzeichnis UpdateConsentDialog.

  4. Erstellen Sie ein Dokument namens eula.rtf für die Softwarelizenzbedingungen.

    Hinweis

    Die Softwarelizenzbedingungen sollten Informationen zu Lizenzierung, Garantien, Haftung und lokalen Gesetzen enthalten. 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 an Ihre Rechtsabteilung, um den Inhalt der Softwarelizenzbedingungen abzuklären.

  5. Speichern Sie das Dokument im Unterverzeichnis „en“ im Bootstrapperverzeichnis UpdateConsentDialog.

  6. Erstellen Sie bei Bedarf eine neue package.xml-Manifestdatei und ein neues eula.rtf-Dokument für die Softwarelizenzbedingungen für das jeweilige Gebietsschema. Wenn Sie beispielsweise Unterverzeichnisse für die Gebietsschemas „fr“ und „de“ erstellt haben, erstellen Sie separate package.xml-Manifestdateien und Softwarelizenzbedingungen, und speichern Sie sie in den Unterverzeichnissen „fr“ und „de“.

In Visual Studio können Sie die Anwendung zur Einwilligung in die Aktualisierung als erforderliche Komponente festlegen.

  1. Klicken Sie in Projektmappen-Explorer auf den Namen der Anwendung, die Sie bereitstellen möchten.

  2. Klicken Sie im Menü Projekt auf Eigenschaften von Projektname.

  3. Klicken Sie auf die Seite Veröffentlichen und dann auf Erforderliche Komponenten.

  4. Wählen Sie Update Consent Dialog (Dialogfeld „Zustimmung aktualisieren“) aus.

    Hinweis

    Möglicherweise müssen Sie Visual Studio schließen und erneut öffnen, um das Dialogfeld „Update Consent“ (Dialogfeld „Zustimmung aktualisieren“) im Dialogfeld „Erforderliche Komponenten“ anzuzeigen.

  5. Klicken Sie auf OK.

Erstellen und Testen des Setupprogramms

Nachdem Sie die Anwendung zur Einwilligung in die Aktualisierung 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

  1. Klicken Sie in Projektmappen-Explorer auf den Namen der Anwendung, die Sie bereitstellen möchten.

  2. Klicken Sie im Menü Projekt auf Eigenschaften von Projektname.

  3. Klicken Sie auf die Seite Veröffentlichen und dann auf Jetzt veröffentlichen.

  4. Wenn die Veröffentlichungsausgabe nicht automatisch geöffnet wird, navigieren Sie zur Veröffentlichungsausgabe.

  5. Führen Sie das Programm Setup.exe aus.

    Vom Setupprogramm wird der Softwarelizenzvertrag des Dialogfelds zum Aktualisieren der Einwilligung angezeigt.

  6. Lesen Sie den Softwarelizenzvertrag, und klicken Sie dann auf Akzeptieren.

    Die Anwendung für das Dialogfeld zur Aktualisierung der Einwilligung wird mit folgendem Text angezeigt: The application that you are about to install checks for the latest updates on the Web (Von der Anwendung, die Sie installieren möchten, wird im Web eine Überprüfung auf die neuesten Updates durchgeführt). Durch Klicken auf „Ich stimme zu“ autorisieren Sie die Anwendung, automatisch im Internet nach Updates zu suchen und diese zu installieren.

  7. 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.

  8. Klicken Sie auf „Details“, um die folgende Fehlermeldung anzuzeigen: Component Update Consent Dialog has failed to install with the following error message: "The automatic update agreement is not accepted." The following components failed to install: - Update Consent Dialog (Fehler bei der Installation der Komponente Dialogfeld „Zustimmung aktualisieren“. Fehlermeldung: „Die Vereinbarung für automatische Updates ist nicht akzeptiert“. Fehler beim Installieren der folgenden Komponenten: – Dialogfeld „Zustimmung aktualisieren“)

  9. Klicken Sie auf Schließen.

So erstellen und testen Sie das Setupprogramm, indem Sie auf „Ich stimme zu“ klicken

  1. Klicken Sie in Projektmappen-Explorer auf den Namen der Anwendung, die Sie bereitstellen möchten.

  2. Klicken Sie im Menü Projekt auf Eigenschaften von Projektname.

  3. Klicken Sie auf die Seite Veröffentlichen und dann auf Jetzt veröffentlichen.

  4. Wenn die Veröffentlichungsausgabe nicht automatisch geöffnet wird, navigieren Sie zur Veröffentlichungsausgabe.

  5. Führen Sie das Programm Setup.exe aus.

    Vom Setupprogramm wird der Softwarelizenzvertrag des Dialogfelds zum Aktualisieren der Einwilligung angezeigt.

  6. Lesen Sie den Softwarelizenzvertrag, und klicken Sie dann auf Akzeptieren.

    Die Anwendung für das Dialogfeld zur Aktualisierung der Einwilligung wird mit folgendem Text angezeigt: The application that you are about to install checks for the latest updates on the Web (Von der Anwendung, die Sie installieren möchten, wird im Web eine Überprüfung auf die neuesten Updates durchgeführt). Durch Klicken auf „Ich stimme zu“ autorisieren Sie die Anwendung, automatisch im Internet nach Updates zu suchen und diese zu installieren.

  7. Klicken Sie auf Ich stimme zu, und klicken Sie dann auf Vorgang fortsetzen.

    Die Anwendung beginnt mit der Installation.

  8. Wenn das Dialogfeld „Anwendungsinstallation“ angezeigt wird, klicken Sie auf Installieren.