Procédure pas à pas : Créer un programme d’amorçage personnalisé avec une invite de confidentialité

Vous pouvez configurer des applications ClickOnce pour qu’elles se mettent à jour automatiquement lorsque des assemblys avec des versions de fichier et des versions d’assembly plus récentes deviennent disponibles. Pour vous assurer que vos clients consentent à ce comportement, vous pouvez leur présenter une invite de confidentialité. Ensuite, ils peuvent choisir d’accorder l’autorisation à l’application de se mettre à jour automatiquement. Si l’application n’est pas autorisée à se mettre à jour automatiquement, elle ne s’installe pas.

Notes

Dans cet article, il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains éléments de l’interface utilisateur Visual Studio. Vous utilisez peut-être une autre édition de Visual Studio ou d'autres paramètres d'environnement. Pour plus d’informations, consultez Personnaliser l’IDE.

Pour afficher une invite de confidentialité, créez une application qui demande au lecteur de donner son consentement aux mises à jour automatiques de l’application.

  1. Dans le menu Fichier , pointez sur Nouveau, puis cliquez sur Projet.

  2. Dans la boîte de dialogue Nouveau projet, cliquez sur Windows, puis sur WindowsFormsApplication.

  3. Pour Nom, tapez ConsentDialog, puis cliquez sur OK.

  4. Dans le concepteur, cliquez sur le formulaire.

  5. Dans la fenêtre Propriétés, remplacez la propriété Texte par Mettre à jour la boîte de dialogue de consentement.

  6. Dans la Boîte à outils, développez Tous les Windows Forms, puis faites glisser un contrôle Étiquette vers le formulaire.

  7. Dans le concepteur, cliquez sur le contrôle d’étiquette.

  8. Dans la fenêtre Propriétés, remplacez la propriété Texte sous Apparence par ce qui suit :

    L’application que vous êtes sur le point d’installer recherche les dernières mises à jour sur le web. En cliquant sur « J’accepte », vous autorisez l’application à rechercher et à installer automatiquement les mises à jour à partir d’Internet.

  9. Dans la Boîte à outils, faites glisser un contrôle Case à cocher au milieu du formulaire.

  10. Dans la fenêtre Propriétés, remplacez la propriété Texte sous Disposition par J’accepte.

  11. Dans la Boîte à outils, faites glisser un contrôle Bouton en bas à gauche du formulaire.

  12. Dans la fenêtre Propriétés, remplacez la propriété Texte sous Disposition par Continuer.

  13. Dans la fenêtre Propriétés, remplacez la propriété (Nom) sous Conception par ProceedButton.

  14. Dans la Boîte à outils, faites glisser un contrôle Bouton en bas à droite du formulaire.

  15. Dans la fenêtre Propriétés, remplacez la propriété Texte sous Disposition par Annuler.

  16. Dans la fenêtre Propriétés, remplacez la propriété (Nom) sous Conception par CancelButton.

  17. Dans le concepteur, double-cliquez sur la case J’accepte pour générer le gestionnaire d’événements CheckedChanged.

  18. Dans le fichier de code Form1, ajoutez le code suivant pour le gestionnaire d’événements CheckedChanged.

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        ProceedButton.Enabled = !ProceedButton.Enabled;
    }
    
  19. Mettez à jour le constructeur de classe pour désactiver le bouton Continuer par défaut.

    public Form1()
    {
        InitializeComponent();
        ProceedButton.Enabled = false;
    }
    
  20. Dans le fichier de code Form1, ajoutez le code suivant pour une variable booléenne afin de déterminer si l’utilisateur final a consenti aux mises à jour en ligne.

    public bool accepted = false;
    
  21. Dans le concepteur, double-cliquez sur le bouton Continuer pour générer le gestionnaire d’événements Click.

  22. Dans le fichier de code Form1, ajoutez le code suivant au gestionnaire d’événements Click pour le bouton Continuer.

    private void ProceedButton_Click(object sender, EventArgs e)
    {
        if (ProceedButton.Enabled)
        {
            accepted = true;
            this.Close();
        }
    }
    
  23. Dans le concepteur, double-cliquez sur le bouton Annuler pour générer le gestionnaire d’événements Click.

  24. Dans le fichier de code Form1, ajoutez le code suivant au gestionnaire d’événements Click pour le bouton Annuler.

    private void CancelButton_Click(object sender, EventArgs e)
    {
        this.Close();
    }
    
  25. Mettez à jour l’application pour retourner une erreur si l’utilisateur final ne consent pas aux mises à jour en ligne.

    Pour les développeurs Visual Basic uniquement :

    1. Dans l'Explorateur de solutions, choisissez ConsentDialog.

    2. Dans le menu Projet, cliquez sur Ajouter un module, puis sur Ajouter.

    3. Dans le fichier de code Module1.vb, ajoutez le code suivant.

      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. Dans le menu Projet, cliquez sur Propriétés de ConsentDialog, puis sur l’onglet Application.

    5. Décochez Activer l’infrastructure d’application.

    6. Dans le menu déroulant Objet de démarrage, sélectionnez Module1.

      Remarque

      La désactivation de l’infrastructure d’application désactive des fonctionnalités comme les styles visuels, les événements d’application, l’écran de démarrage, l’application à instance unique, etc. Pour plus d'informations, consultez Application Page, Project Designer (Visual Basic).

      Pour les développeurs Visual C# uniquement :

      Ouvrez le fichier de code Program.cs et ajoutez le code suivant.

      static int Main()
      {
          Application.EnableVisualStyles();
          Application.SetCompatibleTextRenderingDefault(false);
          Form1 f = new Form1();
          Application.Run(f);
          if (!f.accepted)
              return -1;
          else
              return 0;
      }
      
  26. Dans le menu Générer, cliquez sur Générer la solution.

Créer le package de programme d’amorçage personnalisé

Pour afficher l’invite de confidentialité aux utilisateurs finaux, vous pouvez créer un package de programme d’amorçage personnalisé pour l’application de boîte de dialogue de consentement aux mises à jour et l’inclure comme prérequis dans toutes vos applications ClickOnce.

Cette procédure montre comment créer un package de programme d’amorçage personnalisé en créant les documents suivants :

  • Un fichier manifeste product.xml pour décrire le contenu du programme d’amorçage.

  • Un fichier manifeste package.xml pour répertorier les aspects spécifiques à la localisation de votre package, comme les chaînes et les conditions du contrat de licence logiciel.

  • Un document pour les conditions du contrat de licence logiciel.

Étape 1 : Pour créer le répertoire du programme d’amorçage

  1. Créez un répertoire nommé UpdateConsentDialog dans %PROGRAMFILES%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages.

    Notes

    Vous aurez peut-être besoin de privilèges d’administration pour créer ce dossier.

  2. Dans le répertoire UpdateConsentDialog, créez un sous-répertoire nommé en.

    Notes

    Créez un répertoire pour chaque paramètre régional. Par exemple, vous pouvez ajouter des sous-répertoires pour les paramètres régionaux fr et de. Ces répertoires contiennent les chaînes et modules linguistiques Français et Allemand, si nécessaire.

Étape 2 : Pour créer le fichier manifeste product.xml

  1. Créez un fichier texte appelé product.xml.

  2. Dans le fichier product.xml, ajoutez le code XML suivant. Veillez à ne pas remplacer le code XML existant.

    <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. Enregistrez le fichier dans le répertoire du programme d’amorçage UpdateConsentDialog.

Étape 3 : Pour créer le fichier manifeste package.xml et les conditions du contrat de licence logiciel

  1. Créez un fichier texte appelé package.xml.

  2. Dans le fichier package.xml, ajoutez le code XML suivant pour définir les paramètres régionaux et inclure les conditions du contrat de licence logiciel. Veillez à ne pas remplacer le code XML existant.

    <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. Enregistrez le fichier dans le sous-répertoire « en » dans le répertoire du programme d’amorçage UpdateConsentDialog.

  4. Créez un document appelé eula.rtf pour les conditions du contrat de licence logiciel.

    Notes

    Les conditions du contrat de licence logiciel doivent inclure des informations sur les licences, les garanties, les responsabilités et les lois locales. Ces fichiers doivent être spécifiques aux paramètres régionaux. Assurez-vous donc que le fichier est enregistré dans un format qui prend en charge les caractères MBCS ou UNICODE. Consultez votre service juridique pour connaître le contenu des conditions du contrat de licence logiciel.

  5. Enregistrez le document dans le sous-répertoire « en » du répertoire du programme d’amorçage UpdateConsentDialog.

  6. Si nécessaire, créez un fichier manifeste package.xml et un nouveau document eula.rtf pour les conditions du contrat de licence logiciel pour chaque paramètre régional. Par exemple, si vous avez créé des sous-répertoires pour les paramètres régionaux fr et de, créez des fichiers manifeste package.xml et conditions de contrat de licence logiciel distincts, puis enregistrez-les dans les sous-répertoires fr et de.

Dans Visual Studio, vous pouvez définir l’application de consentement de mise à jour comme prérequis.

  1. Dans l’Explorateur de solutions, cliquez sur le nom de l’application que vous souhaitez déployer.

  2. Dans le menu Projet, cliquez sur Propriétés de NomProjet.

  3. Cliquez sur la page Publier, puis sur Prérequis.

  4. Sélectionnez Mettre à jour la boîte de dialogue de consentement.

    Notes

    Vous devrez peut-être fermer et rouvrir Visual Studio pour afficher la boîte de dialogue de consentement aux mises à jour dans la boîte de dialogue Prérequis.

  5. Cliquez sur OK.

Créer et tester le programme d’installation

Une fois que vous avez défini l’application Consentement aux mises à jour comme prérequis, vous pouvez générer le programme d’installation et le programme d’amorçage de votre application.

Pour créer et tester le programme d’installation en ne cliquant pas sur J’accepte

  1. Dans l’Explorateur de solutions, cliquez sur le nom de l’application que vous souhaitez déployer.

  2. Dans le menu Projet, cliquez sur Propriétés de NomProjet.

  3. Cliquez sur la page Publier, puis sur Publier maintenant.

  4. Si la sortie de publication ne s’ouvre pas automatiquement, accédez-y.

  5. Exécutez le programme Setup.exe.

    Le programme d’installation affiche le contrat de licence logiciel de la boîte de dialogue de consentement de mise à jour.

  6. Lisez le contrat de licence logicielle, puis cliquez sur Accepter.

    L’application de boîte de dialogue de consentement de mise à jour s’affiche et affiche le texte suivant : L’application que vous êtes sur le point d’installer recherche les dernières mises à jour sur le web. En cliquant sur J’accepte, vous autorisez l’application à rechercher automatiquement les mises à jour sur Internet.

  7. Fermez l’application ou cliquez sur Annuler.

    L’application affiche une erreur : Une erreur s’est produite lors de l’installation des composants système pour ApplicationName. Le programme d’installation ne peut pas continuer tant que tous les composants système n’ont pas été correctement installés.

  8. Cliquez sur Détails pour afficher le message d’erreur suivant : La boîte de dialogue de consentement aux mises à jour du composant n’a pas pu être installée avec le message d’erreur suivant : « Le consentement aux mises à jour automatiques n’a pas été accepté ». Échec de l’installation des composants suivants : - Boîte de dialogue de consentement aux mises à jour

  9. Cliquez sur Fermer.

Pour créer et tester le programme d’installation en cliquant sur J’accepte

  1. Dans l’Explorateur de solutions, cliquez sur le nom de l’application que vous souhaitez déployer.

  2. Dans le menu Projet, cliquez sur Propriétés de NomProjet.

  3. Cliquez sur la page Publier, puis sur Publier maintenant.

  4. Si la sortie de publication ne s’ouvre pas automatiquement, accédez-y.

  5. Exécutez le programme Setup.exe.

    Le programme d’installation affiche le contrat de licence logiciel de la boîte de dialogue de consentement de mise à jour.

  6. Lisez le contrat de licence logicielle, puis cliquez sur Accepter.

    L’application de boîte de dialogue de consentement de mise à jour s’affiche et affiche le texte suivant : L’application que vous êtes sur le point d’installer recherche les dernières mises à jour sur le web. En cliquant sur J’accepte, vous autorisez l’application à rechercher automatiquement les mises à jour sur Internet.

  7. Cliquez sur J’accepte, puis sur Continuer.

    L’application commence à s’installer.

  8. Si la boîte de dialogue Installation de l’application s’affiche, cliquez sur Installer.