Sdílet prostřednictvím


Podrobné pokyny: Vytvoření vlastního zaváděcího nástroje pro zobrazení bezpečnostního dotazu

ClickOnce aplikace lze konfigurovat pro automatické aktualizace při sestavování s novějšími verzemi souborů a verzemi sestavení k dispozici. Chcete-li se ujistit, že vaši zákazníci souhlasí s tímto postupem, můžete zobrazit dotaz na osobní údaje. Tak se mohou rozhodnout, zda udělí oprávnění k automatickým aktualizacím. Pokud aplikaci nejsou povoleny automatické aktualizace, nebudou instalovány.

Poznámka

Ve vašem počítači se pro některé z prvků uživatelského rozhraní aplikace Visual Studio mohou zobrazit jiné názvy a umístění, než jsou uvedena v následujících pokynech. Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením. Další informace naleznete v tématu Visual Studio, nastavení.

Požadavky

Chcete-li dokončit tento návod, potřebujete následující:

  • Visual Studio 2010

Vytvořit dialogové okno pro souhlas s aktualizacemi

Pro zobrazení dotazu na osobní údaje vytvořte aplikaci, která se čtenáře dotáže na souhlas s automatickými aktualizacemi pro aplikaci.

Pro vytvoření dialogového okna pro souhlas

  1. V nabídce File (Soubor) přejděte na příkaz New (Nový) a klepněte na příkaz Project (Projekt).

  2. V dialogovém okně Nový projekt klepněte na položku Windows a potom klepněte na tlačítko Aplikace Windows Forms.

  3. Pro Název zadejte ConsentDialog a klepněte na tlačítko OK.

  4. V designu klikněte na formulář.

  5. V okně Vlastnosti změňte vlastnost Text na dialogové okno souhlasu s aktualizací.

  6. V nabídce Panel nástrojů rozbalte All Windows Forms a přetáhněte prvek Popisek do formuláře.

  7. V designu klepněte na ovládací panel prvku Popisek.

  8. V panelu Vlastnosti změňte vlastnost Text v nabídce Vzhled na následující:

    Aplikace, kterou se chystáte instalovat hledá nejnovější aktualizace na webu. Klepnutím na "Souhlasím" umožníte aplikaci vyhledat a instalovat aktualizace automaticky z internetu.

  9. Z Panelu nástrojů přetáhněte ovládací prvek Zaškrtávací políčko na střed formuláře.

  10. V panelu Vlastnosti změňte vlastnost Text v nabídce Vzhled na následující:

  11. Z Panelu nástrojů přetáhnout ovládací prvek Tlačítko do levé dolní části formuláře.

  12. V panelu Vlastnosti změňte vlastnost Text v nabídce Vzhled na následující:

  13. V panelu Vlastnosti změňte vlastnost (Název) v nabídce Design na ProceedButton.

  14. Z Panelu nástrojů přetáhněte ovládací prvek Tlačítko do pravé dolní části formuláře.

  15. V panelu Vlastnosti změňte vlastnost Text v nabídce Vzhled na následující:

  16. V panelu Vlastnosti změňte vlastnost (Název) v nabídce Design na CancelButton.

  17. V designu poklepejte na políčko Souhlasím pro vygenerování CheckedChanged obslužné rutiny.

  18. Ve zdrojovém souboru Form1 přidejte následující kód do CheckedChanged obslužné rutiny.

    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;
    }
    
  19. Upravte konstruktor třídy, aby se ve výchozím nastavení nezobrazovalo tlačítko Pokračovat.

    Public Sub New()
        InitializeComponent()
        ProceedButton.Enabled = False
    End Sub
    
    public Form1()
    {
        InitializeComponent();
        ProceedButton.Enabled = false;
    }
    
  20. Ve zdrojovém souboru Form1 přidejte následující kód pro logickou proměnnou ke sledování, jestli koncový uživatel souhlasí s online aktualizacemi.

    Public accepted As Boolean = False
    
    public bool accepted = false;
    
  21. V designu poklepejte na Pokračovat pro vygenerování obslužné rutiny pro událost kliknutí.

  22. Ve zdrojovém souboru Form1 přidejte následující kód pro obslužnou rutinu události kliknutí pro tlačítko Pokračovat.

    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();
        }
    }
    
  23. V designu poklepejte na tlačítko Pokračovat pro vygenerování obslužné rutiny pro událost kliknutí.

  24. Ve zdrojovém souboru Form1 přidejte následující kód pro obslužnou rutinu události kliknutí pro tlačítko Pokračovat.

    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();
    }
    
  25. Upravte aplikaci, aby vracela chybu, pokud koncový uživatel nesouhlasí s aktualizacemi online.

    Pouze pro vývojáře Visual Basic:

    1. V panelu Průzkumník řešení klikněte na ConsentDialog.

    2. V nabídce Projekt klepněte na tlačítko Přidání modulu a potom klepněte na tlačítko Přidat.

    3. Ve zdrojovém souboru Module1.vb přidejte následující kód.

      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. V nabídce Projekt klepněte na tlačítko Vlastnosti ConsentDialog a potom klepněte na záložku Aplikace.

    5. Zrušte zaškrtnutí políčka Povolit rámci aplikace.

    6. V rozevírací nabídce Spouštěcí objekt označte Module1.

      Poznámka

      Zakázání frameworku aplikace zakáže funkce jako systém Windows XP vizuální styly, události aplikací, úvodní obrazovka, aplikace s jednou instancí a další. Další informace naleznete v tématu Stránka aplikace Návrhář projektu (@).

    Pouze pro vývojáře Visual C#:

    Otevřete zdrojový soubor Program.cs a přidejte následující kód.

    static int Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Form1 f = new Form1();
        Application.Run(f);
        if (!f.accepted)
            return -1;
        else
            return 0;
    }
    
  26. V nabídce Build (Sestavit) klepněte na příkaz Build Solution (Sestavit řešení).

Vytváření vlastního balíčku zaváděcího nástroje

K zobrazení dotazu na osobní údaje koncovým uživatelům můžete vytvořit vlastní balíček zaváděcího nástroje pro dialog souhlasu s aktualizací aplikace a zahrnout ho jako předpoklad pro všechny aplikace ClickOnce.

Tento procedura ukazuje, jak vytvořit vlastní balíček zaváděcího nástroje vytvořením následujících dokumentů:

  • Soubor manifestu product.xml k popisu obsahu zaváděcího nástroje.

  • Soubor manifestu package.xml pro výčet specifických aspektů lokalizace vašeho balíčku, jako například řetězců a licenčních podmínek.

  • Dokument pro licenční podmínky.

Krok 1: Pro vytvoření adresáře zaváděcího nástroje

  1. Vytvořte adresář s názvem UpdateConsentDialog v %PROGRAMFILES%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages.

    Poznámka

    Pravděpodobně bude třeba oprávnění správce k vytvoření této složky.

  2. V adresáři UpdateConsentDialog vytvořte podadresář s názvem cs.

    Poznámka

    Vytvořte nový adresář pro každé národní prostředí. Můžete například přidat podadresáře pro národní prostředí fr a de. Tyto adresáře mají obsahovat řetězce francouzštiny a němčiny a jazykové sady, pro případ potřeby.

Krok 2: Pro vytvoření souboru manifestu product.xml

  1. Vytvořte textový soubor product.xml.

  2. Do souboru product.xml přidejte následující kód. Dejte pozor, abyste nepřepsali stávající zálohy.

    <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>
    
  3. Uložte soubor do adresáře UpdateConsentDialog zaváděcího nástroje.

Krok 3: Pro vytvoření souboru manifestu package.xml a licenčních podmínek

  1. Vytvořte textový soubor s názvem package.xml.

  2. V souboru package.xml přidejte následující kód definující národní prostředí a přiložte licenční podmínky. Dejte pozor, abyste nepřepsali stávající zálohy.

    <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>
    
  3. Uložte soubor do dílčího en adresáře v adresáři zaváděcího nástroje UpdateConsentDialog.

  4. Vytvořte dokument s názvem eula.rtf pro licenční podmínky.

    Poznámka

    Licenční podmínky by měly obsahovat informace o licenci, záruce, závazcích a místních právních předpisech. Tyto soubory by měl být specifické pro dané národní prostředí, proto se ujistěte, že soubor je uložen ve formátu, který podporuje znaky znakové sady MBCS nebo UNICODE. Obsah licenčních podmínek konzultujte se svým právním oddělením.

  5. Uložte soubor do dílčího en adresáře v adresáři zaváděcího nástroje UpdateConsentDialog.

  6. V případě potřeby vytvořte nový soubor manifestu package.xml a nový dokument eula.rtf licenčních podmínek pro každé národní prostředí. Například pokud jste vytvořili pro národní prostředí fr a de podadresáře, vytvořte samostatné soubory manifestu package.xml a licenční podmínky a uložte je do podadresáře fr a de.

Nastavte aplikaci souhlasu s aktualizací

V aplikaci Visual Studio můžete předběžně nastavit aplikaci souhlasu s aktualizací.

Pro nastavení aplikace souhlasu s aktualizací

  1. V panelu Průzkumník řešení klepněte na název aplikace, které chcete nasadit.

  2. V nabídce Projekt klepněte na příkaz JménoProjektu Vlastnosti.

  3. Klepněte na tlačítko Publikovat stránku a potom klepněte na tlačítko Požadavky.

  4. Označte Dialogové okno aktualizace.

    Poznámka

    Pravděpodobně bude nutné zavřít a znovu spustit aplikaci Visual Studio pro zobrazení dialogu pro souhlas s aktualizací v dialogovém okně požadavků.

  5. Klepněte na tlačítko OK.

Vytvoření a testování instalačního programu

Po předběžném nastavení aplikace souhlasu s aktualizací můžete generovat instalační program a zaváděcí nástroj pro Vaši aplikaci.

Pro vytvoření a test instalačního programu bez klepnutí na Souhlasím

  1. V panelu Průzkumník řešení klepněte na název aplikace, které chcete nasadit.

  2. V nabídce Projekt klepněte na příkaz JménoProjektu Vlastnosti.

  3. Klepněte na Publikovat stránku a pak klepněte na Poblikovat teď.

  4. Pokud se výstup publikování automaticky neotevře, přejděte do výstupu publikovat.

  5. Spusťte instalační program Setup.exe.

    Instalační program zobrazí licenční smlouvu dialogového okna souhlasu s aktualizací.

  6. Přečtěte si licenční smlouvu a klepněte na tlačítko Přijmout.

    Dialogové okno souhlasu s aktualizací aplikace se objeví a zobrazí následující text: Aplikace, kterou se chystáte instalovat hledá nejnovější aktualizace na webu. Klepnutím na "Souhlasím" umožníte aplikaci vyhledat a instalovat aktualizace automaticky z internetu.

  7. Ukončete aplikaci nebo klepněte na tlačítko Storno.

    Aplikace zobrazí chybu: Došlo k chybě při instalaci systémových součástí pro ApplicationName. Instalační program nemůže pokračovat, dokud nebudou úspěšně nainstalovány všechny systémové součásti.

  8. Klepnutím na tlačítko Podrobnosti zobrazíte následující chybovou zprávu: Komponentě dialog souhlasu s aktualizací se nezdařila instalace s následující chybovou zprávou: "Automatické aktualizace nejsou povoleny." Nezdařilo se nainstalovat následující součásti: -Dialogové okno souhlasu s aktualizací

  9. Klepněte na tlačítko Zavřít.

Pro vytvoření a testování instalačního programu klepnutím na Souhlasím

  1. V panelu Průzkumník řešení klepněte na název aplikace, které chcete nasadit.

  2. V nabídce Projekt klepněte na příkaz JménoProjektu Vlastnosti.

  3. Klepněte na Publikovat stránku a pak klepněte na Poblikovat teď.

  4. Pokud se výstup publikování automaticky neotevře, přejděte do výstupu publikovat.

  5. Spusťte instalační program Setup.exe.

    Instalační program zobrazí licenční smlouvu dialogového okna souhlasu s aktualizací.

  6. Přečtěte si licenční smlouvu a klepněte na tlačítko Přijmout.

    Dialogové okno souhlasu s aktualizací aplikace se objeví a zobrazí následující text: Aplikace, kterou se chystáte instalovat hledá nejnovější aktualizace na webu. Klepnutím na "Souhlasím" umožníte aplikaci vyhledat a instalovat aktualizace automaticky z internetu.

  7. Klepněte na tlačítko Souhlasím a potom klepněte na tlačítko Pokračovat.

    Aplikace se instaluje.

  8. Pokud se zobrazí dialogové okno instalace, klepněte na tlačítko Instalovat.

Viz také

Úkoly

Postupy: Vytvoření manifestu produktu

Postupy: Vytvořit manifest balíčku

Odkaz

Referenční schéma balíčku a produktu

Koncepty

Požadavky na nasazení aplikace

Vytváření balíčků zaváděcího nástroje