Partager via


Choix d'une stratégie de mise à jour ClickOnce

ClickOnce peut fournir des mises à jour d'application automatiques. Une application ClickOnce lit périodiquement son fichier manifeste de déploiement pour vérifier si les mises à jour de l'application sont disponibles. Si disponible, la nouvelle version de l'application est téléchargée et exécutée. Pour des raisons d'efficacité, seuls les fichiers modifiés sont téléchargés.

Lorsque vous concevez une application ClickOnce, vous devez déterminer quelle stratégie l'application utilisera pour vérifier les mises à jour disponibles. Trois stratégies de base sont possibles : la vérification des mises à jour au démarrage de l'application, la vérification des mises à jour après le démarrage de l'application (exécutée dans un thread d'arrière-plan) ou la présentation d'une interface utilisateur destinée aux mises à jour.

De plus, vous pouvez déterminer la fréquence de vérification des mises à jour effectuées par l'application et configurer une mise à jour obligatoire.

Notes

Les mises à jour d'application exigent une connexion au réseau.En l'absence d'une connexion réseau, l'application s'exécute sans vérifier les mises à jour, quelle que soit la stratégie de mise à jour choisie.

Notes

Dans le .NET Framework 2.0 et le .NET Framework 3.0, à chaque fois que votre application vérifie les mises à jour, avant ou après le démarrage, ou à l'aide des API System.Deployment.Application, vous devez définir deploymentProvider dans le manifeste de déploiement.Dans Visual Studio, l'élément deploymentProvider correspond au champ Emplacement de mise à jour dans la boîte de dialogue Mises à jour de l'onglet Publier.Cette règle est assouplie dans .NET Framework 3.5.Pour plus d'informations, consultez Déploiement d'applications ClickOnce pour des serveurs de test et de production sans nouvelle signature.

Vérification des mises à jour après le démarrage de l'application

Si vous utilisez cette stratégie, l'application tente de localiser et de lire le fichier manifeste de déploiement en arrière-plan pendant l'exécution de l'application. Si une mise à jour est disponible, lors de la prochaine exécution de l'application, l'utilisateur sera invité à télécharger et à installer la mise à jour.

Cette stratégie est tout particulièrement adaptée aux connexions réseau à bande passante restreinte ou aux applications plus importantes, susceptibles de nécessiter de longs téléchargements.

Pour activer cette stratégie de mise à jour, cliquez sur Après le démarrage de l'application dans la section Choisissez à quel moment l'application doit vérifier la disponibilité de mises à jour de la boîte de dialogue Mises à jour des applications. Ensuite, spécifiez un intervalle de mise à jour dans la section Spécifiez à quelle fréquence l'application doit vérifier la disponibilité de mises à jour.

Cela revient à modifier l'élément Update dans le manifeste de déploiement comme suit :

   <!-- When to check for updates -->
   <subscription>
      <update>
         <expiration maximumAge="6" unit="hours" />
      </update>
   </subscription>

Vérification des mises à jour avant le démarrage de l'application

La stratégie par défaut est d'essayer de localiser et de lire le fichier manifeste de déploiement avant le démarrage de l'application. Avec cette stratégie, l'application tente de localiser et de lire le fichier manifeste de déploiement chaque fois que l'utilisateur lance l'application. Si une mise à jour est disponible, elle sera téléchargée et lancée ; sinon, la version existante de l'application sera démarrée.

Cette stratégie est particulièrement adaptée aux connexions réseau à large bande passante ; le délai nécessaire au lancement de l'application peut être inacceptable sur des connexions à bande passante restreinte.

Pour activer cette stratégie de mise à jour, cliquez sur Avant le démarrage de l'application dans la section Choisissez à quel moment l'application doit vérifier la disponibilité de mises à jour de la boîte de dialogue Mises à jour des applications.

Cela revient à modifier l'élément Update dans le manifeste de déploiement comme suit :

   <!-- When to check for updates -->
   <subscription>
      <update>
         <beforeApplicationStartup />
      </update>
   </subscription>

Activation de l'option de mise à jour obligatoire

Dans certains cas, vous souhaitez obliger les utilisateurs à exécuter une version mise à jour de votre application. Par exemple, vous pouvez apporter une modification à une ressource externe, telle qu'un service Web, qui empêche le fonctionnement correct de la version antérieure de votre application. Dans ce cas, vous souhaitez marquer votre mise à jour comme étant obligatoire et empêcher les utilisateurs d'exécuter la version antérieure.

Notes

Bien qu'il soit possible d'exiger des mises à jour à l'aide des autres stratégies de mise à jour, la vérification Avant le démarrage de l'application est la seule façon d'interdire l'exécution d'une version antérieure.Lorsque la mise à jour obligatoire est détectée au démarrage, l'utilisateur doit accepter la mise à jour ou fermer l'application.

Pour marquer une mise à jour comme étant obligatoire, cliquez sur Spécifiez la version minimale requise pour cette application dans la boîte de dialogue Mises à jour des applications, puis spécifiez la version de publication (Principale, Secondaire, Build, Révision) qui indique le numéro de version minimal de l'application qui peut être installée.

Cela revient à définir l'attribut minimumRequiredVersion de l'élément Deployment dans le manifeste de déploiement. Par exemple :

   <deployment install="true" minimumRequiredVersion="1.0.0.0">

Spécification d'intervalles de mise à jour

Vous pouvez également spécifier la fréquence de vérification des mises à jour de l'application. Pour ce faire, spécifiez l'application devant vérifier les mises à jour après le démarrage comme indiqué dans « Vérification des mises à jour après le démarrage de l'application » plus haut dans cette rubrique.

Pour spécifier l'intervalle de mise à jour, définissez les propriétés Spécifiez à quelle fréquence l'application doit vérifier la disponibilité de mises à jour dans la boîte de dialogue Mises à jour des applications.

Cela revient à définir les attributs maximumAge et unit de l'élément Update dans le manifeste de déploiement.

Par exemple, vous pouvez souhaiter une vérification à chaque exécution de l'application, une fois par semaine ou une fois par mois. En l'absence d'une connexion réseau au moment spécifié, la vérification de mises à jour est effectuée à la prochaine exécution de l'application.

Présentation d'une interface utilisateur pour les mises à jour

Avec cette stratégie, le développeur de l'application fournit une interface utilisateur qui permet à l'utilisateur de choisir le moment ou la fréquence de vérification des mises à jour. Par exemple, vous pouvez fournir une commande "Vérifier les mises à jour maintenant" ou une boîte de dialogue "Paramètres de mise à jour" avec un choix d'intervalles de mise à jour différents. Les API de déploiement ClickOnce fournissent une infrastructure pour la programmation de votre propre interface utilisateur de mise à jour. Pour plus d'informations, consultez l'espace de noms System.Deployment.Application.

Si votre application utilise des API de déploiement pour contrôler sa propre logique de mise à jour, vous devez bloquer la vérification de la mise à jour comme décrit dans « Blocage de la vérification des mises à jour » dans la section suivante.

Cette stratégie est spécialement appropriée lorsque vous avez besoin de plusieurs stratégies de mise à jour pour des utilisateurs différents.

Blocage de la vérification des mises à jour

Il est également possible de faire en sorte que votre application ne vérifie jamais les mises à jour. Par exemple, vous pouvez posséder une application simple qui ne sera jamais mise à jour, mais vous souhaitez profiter de la facilité d'installation fournie par le déploiement de ClickOnce.

Vous devez également bloquer la vérification de la mise à jour si votre application utilise des API de déploiement pour effectuer ses propres mises à jour ; consultez « Présentation d'une interface utilisateur pour les mises à jour », plus haut dans cette rubrique.

Pour bloquer la vérification des mises à jour, désactivez la case à cocher L'application doit vérifier la disponibilité de mises à jour dans la boîte de dialogue Mises à jour des applications.

Vous pouvez également bloquer la vérification des mises à jour en supprimant la balise <Subscription> dans le manifeste de déploiement.

Élévation d'autorisations et mises à jour

Si une nouvelle version d'une application ClickOnce requiert l'exécution d'un niveau de confiance supérieur à la version précédente, ClickOnce invite l'utilisateur à indiquer s'il souhaite que ce niveau supérieur de confiance soit accordé à l'application. Si l'utilisateur refuse d'accorder le niveau de confiance supérieur, la mise à jour n'est pas installée. ClickOnce invitera l'utilisateur à installer de nouveau l'application lors du prochain redémarrage. Si l'utilisateur refuse d'accorder le niveau de confiance supérieur à ce stade et que la mise à jour ne soit pas marquée comme étant obligatoire, l'ancienne version de l'application est exécutée. Toutefois, si la mise à jour est obligatoire, l'application ne sera pas exécutée tant que l'utilisateur n'aura pas accepté le niveau de confiance supérieur.

Si vous utilisez le déploiement d'applications approuvées, vous ne recevrez aucune invite concernant les niveaux de confiance. Pour plus d'informations, consultez Vue d'ensemble du déploiement d'applications approuvées.

Voir aussi

Tâches

Comment : gérer des mises à jour pour une application ClickOnce

Référence

System.Deployment.Application

Concepts

Sécurité et déploiement ClickOnce

Choix d'une stratégie de déploiement ClickOnce

Sécurisation des applications ClickOnce

Mises à jour des applications par ClickOnce