Przewodnik: tworzenie niestandardowego programu inicjującego wyświetlającego monit o zasadach ochrony prywatności

Aplikacje ClickOnce można skonfigurować tak, aby automatycznie aktualizowały się, gdy zestawy z nowszymi wersjami plików i wersjami zestawów staną się dostępne. Aby upewnić się, że klienci wyrażają zgodę na to zachowanie, możesz wyświetlić monit o prywatność. Następnie mogą zdecydować, czy przyznać aplikacji uprawnienia do automatycznego aktualizowania. Jeśli aplikacja nie może być aktualizowana automatycznie, nie jest instalowana.

Uwaga

Na komputerze mogą być wyświetlane różne nazwy lub lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio w tym artykule. Być może używasz innej wersji programu Visual Studio lub innych ustawień środowiska. Aby uzyskać więcej informacji, zobacz Personalizowanie środowiska IDE.

Aby wyświetlić monit o prywatność, utwórz aplikację, która prosi czytelnika o wyrażenie zgody na automatyczne aktualizacje aplikacji.

  1. W menu Plik wskaż polecenie Nowy, a następnie kliknij pozycję Projekt.

  2. W oknie dialogowym Nowy projekt kliknij pozycję Windows, a następnie kliknij pozycję WindowsFormsApplication.

  3. W polu Nazwa wpisz ConsentDialog, a następnie kliknij przycisk OK.

  4. W projektancie kliknij formularz.

  5. W oknie Właściwości zmień właściwość Text na Aktualizuj okno dialogowe zgody.

  6. W przyborniku rozwiń pozycję Wszystkie formularze systemu Windows i przeciągnij kontrolkę Etykieta do formularza.

  7. W projektancie kliknij kontrolkę etykiety.

  8. W oknie Właściwości zmień właściwość Text w obszarze Wygląd na następujące:

    Aplikacja, która ma zostać zainstalowana, sprawdza najnowsze aktualizacje w Sieci Web. Klikając pozycję "Zgadzam się", autoryzujesz aplikację do sprawdzania i instalowania aktualizacji automatycznie z Internetu.

  9. W przyborniku przeciągnij kontrolkę Pole wyboru na środek formularza.

  10. W oknie Właściwości zmień właściwość Text w obszarze Układ na Zgadzam się.

  11. W przyborniku przeciągnij kontrolkę Przycisk do lewej dolnej części formularza.

  12. W oknie Właściwości zmień właściwość Text w obszarze Układ na Kontynuuj.

  13. W oknie Właściwości zmień właściwość (Name) w obszarze Projektowanie na KontynuujButton.

  14. W przyborniku przeciągnij kontrolkę Przycisk do prawej dolnej części formularza.

  15. W oknie Właściwości zmień właściwość Text w obszarze Układ na Anuluj.

  16. W oknie Właściwości zmień właściwość (Name) w obszarze Projektowanie na CancelButton.

  17. W projektancie kliknij dwukrotnie pole wyboru Zgadzam się , aby wygenerować program obsługi zdarzeń CheckedChanged.

  18. W pliku kodu Form1 dodaj następujący kod dla programu obsługi zdarzeń CheckedChanged.

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        ProceedButton.Enabled = !ProceedButton.Enabled;
    }
    
  19. Zaktualizuj konstruktor klasy, aby wyłączyć przycisk Kontynuuj domyślnie.

    public Form1()
    {
        InitializeComponent();
        ProceedButton.Enabled = false;
    }
    
  20. W pliku kodu Form1 dodaj następujący kod zmiennej logicznej, aby śledzić, czy użytkownik końcowy wyraził zgodę na aktualizacje online.

    public bool accepted = false;
    
  21. W projektancie kliknij dwukrotnie przycisk Kontynuuj, aby wygenerować procedurę obsługi zdarzeń kliknięcia.

  22. W pliku kodu Form1 dodaj następujący kod do procedury obsługi zdarzeń Click dla przycisku Kontynuuj .

    private void ProceedButton_Click(object sender, EventArgs e)
    {
        if (ProceedButton.Enabled)
        {
            accepted = true;
            this.Close();
        }
    }
    
  23. W projektancie kliknij dwukrotnie przycisk Anuluj, aby wygenerować procedurę obsługi zdarzeń kliknięcia.

  24. W pliku kodu Form1 dodaj następujący kod procedury obsługi zdarzeń Click dla przycisku Anuluj .

    private void CancelButton_Click(object sender, EventArgs e)
    {
        this.Close();
    }
    
  25. Zaktualizuj aplikację, aby zwróciła błąd, jeśli użytkownik końcowy nie wyrazi zgody na aktualizacje online.

    Tylko dla deweloperów języka Visual Basic:

    1. W Eksplorator rozwiązań kliknij pozycję ConsentDialog.

    2. W menu Project (Projekt) kliknij pozycję Add Module (Dodaj moduł), a następnie kliknij przycisk Add (Dodaj).

    3. W pliku kodu Module1.vb dodaj następujący kod.

      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. W menu Project (Projekt) kliknij pozycję ConsentDialog Properties (Właściwości aplikacji), a następnie kliknij kartę Aplikacja.

    5. Usuń zaznaczenie pola wyboru Włącz platformę aplikacji.

    6. W menu rozwijanym Obiekt startowy wybierz pozycję Module1.

      Uwaga

      Wyłączenie struktury aplikacji powoduje wyłączenie funkcji, takich jak style wizualne, zdarzenia aplikacji, ekran powitalny, aplikacja pojedynczego wystąpienia i inne. Aby uzyskać więcej informacji, zobacz Strona aplikacji, Project Projektant (Visual Basic).

      Tylko dla deweloperów języka Visual C#:

      Otwórz plik kodu Program.cs i dodaj następujący kod.

      static int Main()
      {
          Application.EnableVisualStyles();
          Application.SetCompatibleTextRenderingDefault(false);
          Form1 f = new Form1();
          Application.Run(f);
          if (!f.accepted)
              return -1;
          else
              return 0;
      }
      
  26. W menu Kompilacja kliknij pozycję KompilacjaRozwiązywanie.

Tworzenie niestandardowego pakietu programu inicjjącego

Aby wyświetlić monit o prywatność dla użytkowników końcowych, możesz utworzyć niestandardowy pakiet programu inicjjącego dla aplikacji Okna dialogowego zgody aktualizacji i dołączyć go jako wymaganie wstępne we wszystkich aplikacjach ClickOnce.

Ta procedura pokazuje, jak utworzyć niestandardowy pakiet programu inicjjącego, tworząc następujące dokumenty:

  • Plik manifestu product.xml opisujący zawartość programu inicjujący.

  • Plik manifestu package.xml zawierający listę aspektów specyficznych dla lokalizacji pakietu, takich jak ciągi i postanowienia licencyjne dotyczące oprogramowania.

  • Dokument dotyczący postanowień licencyjnych dotyczących oprogramowania.

Krok 1. Aby utworzyć katalog programu inicjatora

  1. Utwórz katalog o nazwie UpdateConsentDialog w folderze %PROGRAMFILES%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages.

    Uwaga

    Aby utworzyć ten folder, może być konieczne uprawnienia administracyjne.

  2. W katalogu UpdateConsentDialog utwórz podkatalog o nazwie en.

    Uwaga

    Utwórz nowy katalog dla każdego ustawienia regionalnego. Można na przykład dodać podkatalogi dla ustawień regionalnych fr i de. Katalogi te zawierają w razie potrzeby ciągi francuskie i niemieckie oraz pakiety językowe.

Krok 2. Aby utworzyć plik manifestu product.xml

  1. Utwórz plik tekstowy o nazwie product.xml.

  2. W pliku product.xml dodaj następujący kod XML. Upewnij się, że nie zastąpisz istniejącego kodu XML.

    <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. Zapisz plik w katalogu programu inicjatora UpdateConsentDialog.

Krok 3. Aby utworzyć plik manifestu package.xml i postanowienia licencyjne dotyczące oprogramowania

  1. Utwórz plik tekstowy o nazwie package.xml.

  2. W pliku package.xml dodaj następujący kod XML, aby zdefiniować ustawienia regionalne i uwzględnić postanowienia licencyjne dotyczące oprogramowania. Upewnij się, że nie zastąpisz istniejącego kodu XML.

    <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. Zapisz plik w podkatalogu en w katalogu bootstrapper UpdateConsentDialog.

  4. Utwórz dokument o nazwie eula.rtf dla postanowień licencyjnych dotyczących oprogramowania.

    Uwaga

    Postanowienia licencyjne dotyczące oprogramowania powinny zawierać informacje na temat licencjonowania, gwarancji, zobowiązań i przepisów lokalnych. Te pliki powinny być specyficzne dla ustawień regionalnych, dlatego upewnij się, że plik jest zapisywany w formacie obsługującym znaki MBCS lub UNICODE. Zapoznaj się z działem prawnym w sprawie zawartości postanowień licencyjnych dotyczących oprogramowania.

  5. Zapisz dokument w podkatalogu en w katalogu bootstrapper UpdateConsentDialog .

  6. W razie potrzeby utwórz nowy plik manifestu package.xml i nowy dokument eula.rtf dla postanowień licencyjnych dotyczących oprogramowania dla poszczególnych ustawień regionalnych. Jeśli na przykład utworzono podkatalogi dla ustawień regionalnych fr i de, utwórz oddzielne pliki manifestu package.xml i postanowienia licencyjne dotyczące oprogramowania i zapisz je w podkatalogach fr i de.

W programie Visual Studio możesz ustawić aplikację Update Consent jako wymaganie wstępne.

  1. W Eksplorator rozwiązań kliknij nazwę aplikacji, którą chcesz wdrożyć.

  2. W menu Project (Projekt) kliknij pozycję ProjectNameProperties (Właściwości projektu).

  3. Kliknij stronę Publikowanie, a następnie kliknij pozycję Wymagania wstępne.

  4. Wybierz pozycję Aktualizuj okno dialogowe zgody.

    Uwaga

    Może być konieczne zamknięcie i ponowne otwarcie programu Visual Studio, aby wyświetlić okno dialogowe Aktualizowanie zgody w oknie dialogowym Wymagania wstępne.

  5. Kliknij przycisk OK.

Tworzenie i testowanie programu instalacyjnego

Po ustawieniu aplikacji Update Consent jako wymagania wstępne można wygenerować instalatora i program inicjatora dla aplikacji.

Aby utworzyć i przetestować program instalacyjny, nie klikając przycisku Zgadzam się

  1. W Eksplorator rozwiązań kliknij nazwę aplikacji, którą chcesz wdrożyć.

  2. W menu Project (Projekt) kliknij pozycję ProjectNameProperties (Właściwości projektu).

  3. Kliknij stronę Publikuj, a następnie kliknij pozycję Publikuj teraz.

  4. Jeśli dane wyjściowe publikowania nie są otwierane automatycznie, przejdź do danych wyjściowych publikowania.

  5. Uruchom program Setup.exe.

    W programie instalacyjnym jest wyświetlana umowa licencyjna dotycząca oprogramowania okna dialogowego zgody aktualizacji.

  6. Przeczytaj umowę licencyjną oprogramowania, a następnie kliknij przycisk Akceptuj.

    Zostanie wyświetlona aplikacja dialogowa Aktualizuj zgodę i zostanie wyświetlony następujący tekst: Aplikacja, która ma zostać zainstalowana, sprawdza najnowsze aktualizacje w sieci Web. Klikając pozycję Zgadzam się, autoryzujesz aplikację do automatycznego sprawdzania dostępności aktualizacji w Internecie.

  7. Zamknij aplikację lub kliknij przycisk Anuluj.

    Aplikacja wyświetla błąd: Wystąpił błąd podczas instalowania składników systemowych dla elementu ApplicationName. Instalator nie może kontynuować, dopóki wszystkie składniki systemu nie zostały pomyślnie zainstalowane.

  8. Kliknij przycisk Szczegóły, aby wyświetlić następujący komunikat o błędzie: Okno dialogowe zgody na aktualizację składnika nie powiodło się z następującym komunikatem o błędzie: "Umowa automatyczna aktualizacji nie została zaakceptowana". Instalacja następujących składników nie powiodła się: — Aktualizowanie okna dialogowego zgody

  9. Kliknij przycisk Zamknij.

Aby utworzyć i przetestować program instalacyjny, kliknij pozycję Zgadzam się

  1. W Eksplorator rozwiązań kliknij nazwę aplikacji, którą chcesz wdrożyć.

  2. W menu Project (Projekt) kliknij pozycję ProjectNameProperties (Właściwości projektu).

  3. Kliknij stronę Publikuj, a następnie kliknij pozycję Publikuj teraz.

  4. Jeśli dane wyjściowe publikowania nie są otwierane automatycznie, przejdź do danych wyjściowych publikowania.

  5. Uruchom program Setup.exe.

    W programie instalacyjnym jest wyświetlana umowa licencyjna dotycząca oprogramowania okna dialogowego zgody aktualizacji.

  6. Przeczytaj umowę licencyjną oprogramowania, a następnie kliknij przycisk Akceptuj.

    Zostanie wyświetlona aplikacja dialogowa Aktualizuj zgodę i zostanie wyświetlony następujący tekst: Aplikacja, która ma zostać zainstalowana, sprawdza najnowsze aktualizacje w sieci Web. Klikając pozycję Zgadzam się, autoryzujesz aplikację do automatycznego sprawdzania dostępności aktualizacji w Internecie.

  7. Kliknij przycisk Zgadzam się, a następnie kliknij przycisk Kontynuuj.

    Aplikacja rozpoczyna instalację.

  8. Jeśli zostanie wyświetlone okno dialogowe Instalowanie aplikacji, kliknij przycisk Zainstaluj.