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

Changer de vue:
ScriptFree
Guide du développeur .NET Framework
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 pour 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.

RemarqueRemarque

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.

RemarqueRemarque

À tout moment, 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. Cela s'applique à toutes les tâches décrites dessous.

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

Si vous utilisez la stratégie par défaut, 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 En arrière-plan, pendant l'exécution 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.

RemarqueRemarque

Il s'agit de l'option par défaut.

Pour activer cette stratégie de mise à jour, modifiez 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 au 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 exécutée ; sinon, la version existante de l'application sera exécuté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. Pour plus d'informations, consultez Mises à jour des applications, boîte de dialogue.

Pour activer cette stratégie de mise à jour, modifiez l'élément Update 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.

RemarqueRemarque

Bien qu'il soit possible d'exiger des mises à jour à l'aide des autres stratégies de mise à jour, la vérification au démarrage de l'application est la seule façon d'interdire l'exécution d'une version antérieure.

Pour marquer une mise à jour comme étant obligatoire, cliquez sur Rendre les mises à jours obligatoires dans la boîte de dialogue Mises à jour des applications. Pour plus d'informations, consultez Mises à jour des applications, boîte de dialogue.

Pour marquer une mise à jour comme étant obligatoire, définissez 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. 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.

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. Pour plus d'informations, consultez Mises à jour des applications, boîte de dialogue.

Pour spécifier l'intervalle de mise à jour, modifiez les attributs maximumAge et unit de l'élément Update dans le manifeste de déploiement.

Notez que la manière dont vous installez une application à vérifier après que le démarrage consiste essentiellement à spécifier un intervalle de mise à jour ; consultez « Vérification des mises à jour après le démarrage de l'application » ci-dessus.

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 un élément de menu "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 de 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 » ci-dessous.

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

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, boîte de dialogue.

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

Voir aussi