Choix d'une stratégie de mise à jour ClickOnceChoosing a ClickOnce Update Strategy

ClickOnceClickOnce peut fournir des mises à jour d'application automatiques. can provide automatic application updates. A ClickOnceClickOnce application lit périodiquement son fichier manifeste de déploiement pour voir si des mises à jour de l’application sont disponibles.A ClickOnceClickOnce application periodically reads its deployment manifest file to see whether updates to the application are available. Si disponible, la nouvelle version de l'application est téléchargée et exécutée.If available, the new version of the application is downloaded and run. Pour des raisons d'efficacité, seuls les fichiers modifiés sont téléchargés.For efficiency, only those files that have changed are downloaded.

Lorsque vous concevez une application ClickOnceClickOnce, vous devez déterminer quelle stratégie l'application utilisera pour vérifier les mises à jour disponibles.When designing a ClickOnceClickOnce application, you have to determine which strategy the application will use to check for available updates. 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.There are three basic strategies that you can use: checking for updates on application startup, checking for updates after application startup (running in a background thread), or providing a user interface for updates.

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.In addition, you can determine how often the application will check for updates, and you can make updates required.

Note

Les mises à jour d'application exigent une connexion au réseau.Application updates require network connectivity. 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.If a network connection is not present, the application will run without checking for updates, regardless of the update strategy that you choose.

Note

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.In .NET Framework 2.0 and .NET Framework 3.0, any time your application checks for updates, before or after startup, or by using the System.Deployment.Application APIs, you must set deploymentProvider in the deployment manifest. Le deploymentProvider élément correspondant dans Visual Studio pour le mettre à jour d’emplacement champ sur la mises à jour boîte de dialogue de la publier onglet. Cette règle est assouplie dans .NET Framework 3.5.The deploymentProvider element corresponds in Visual Studio to the Update location field on the Updates dialog box of the Publish tab. This rule is relaxed in .NET Framework 3.5. Pour plus d’informations, consultez déploiement ClickOnce Applications pour tester les et les serveurs de Production sans Resigning.For more information, see Deploying ClickOnce Applications For Testing and Production Servers without Resigning.

Vérification des mises à jour après le démarrage de l'applicationChecking for Updates After Application Startup

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.By using this strategy, the application will attempt to locate and read the deployment manifest file in the background while the application is running. 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.If an update is available, the next time that the user runs the application, he will be prompted to download and install the update.

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.This strategy works best for low-bandwidth network connections or for larger applications that might require lengthy downloads.

Pour activer cette stratégie de mise à jour, cliquez sur après le démarrage de l’application dans les choisissez à quel moment l’application doit vérifier les mises à jour section de la mises à jour de l’Application boîte de dialogue.To enable this update strategy, click After the application starts in the Choose when the application should check for updates section of the Application Updates dialog box. Puis spécifiez un intervalle de mise à jour dans la section spécifier la fréquence à laquelle l’application doit vérifier les mises à jour.Then specify an update interval in the section Specify how frequently the application should check for updates.

Cela revient à modifier le mise à jour manifeste d’élément dans le déploiement comme suit :This is the same as changing the Update element in the deployment manifest as follows:

<!-- 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'applicationChecking for Updates Before Application Startup

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.The default strategy is to try to locate and read the deployment manifest file before the application starts. 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.By using this strategy, the application will attempt to locate and read the deployment manifest file every time that the user starts the 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.If an update is available, it will be downloaded and started; otherwise, the existing version of the application will be started.

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.This strategy works best for high-bandwidth network connections; the delay in starting the application may be unacceptably long over low-bandwidth connections.

Pour activer cette stratégie de mise à jour, cliquez sur avant le démarrage de l’application dans les choisissez à quel moment l’application doit vérifier les mises à jour section de la mises à jour de l’Application boîte de dialogue.To enable this update strategy, click Before the application starts in the Choose when the application should check for updates section of the Application Updates dialog box.

Cela revient à modifier le mise à jour manifeste d’élément dans le déploiement comme suit :This is the same as changing the Update element in the deployment manifest as follows:

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

Activation de l'option de mise à jour obligatoireMaking Updates Required

Dans certains cas, vous souhaitez obliger les utilisateurs à exécuter une version mise à jour de votre application.There may be occasions when you want to require users to run an updated version of your 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.For example, you might make a change to an external resource such as a Web service that would prevent the earlier version of your application from working correctly. Dans ce cas, vous souhaitez marquer votre mise à jour comme étant obligatoire et empêcher les utilisateurs d'exécuter la version antérieure.In this case, you would want to mark your update as required and prevent users from running the earlier version.

Note

Bien que vous pouvez exiger des mises à jour à l’aide d’autres stratégies de mise à jour, la vérification de la avant le démarrage de l’application est le seul moyen de garantir qu’une version plus ancienne ne peut pas être exécutée.Although you can require updates by using the other update strategies, checking Before the application starts is the only way to guarantee that an older version cannot be run. Lorsque la mise à jour obligatoire est détectée au démarrage, l'utilisateur doit accepter la mise à jour ou fermer l'application.When the mandatory update is detected on startup, the user must either accept the update or close the application.

Pour marquer une mise à jour comme requis, cliquez sur spécifier une version minimale requise pour cette application dans les Application met à jour boîte de dialogue zone, puis spécifiez la version de publication (majeure, Secondaire, générer, révision), qui spécifie le numéro de version le plus bas de l’application qui peut être installé.To mark an update as required, click Specify a minimum required version for this application in the Application Updates dialog box, and then specify the publish version (Major, Minor, Build, Revision), which specifies the lowest version number of the application that can be installed.

Ceci est le même que le minimumRequiredVersion attribut de la déploiement élément dans le manifeste de déploiement ; par exemple :This is the same as setting the minimumRequiredVersion attribute of the Deployment element in the deployment manifest; for example:

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

Spécification d'intervalles de mise à jourSpecifying Update Intervals

Vous pouvez également spécifier la fréquence de vérification des mises à jour de l'application.You can also specify how often the application checks for updates. 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.To do this, specify that the application check for updates after startup as described in "Checking for Updates After Application Startup" earlier in this topic.

Pour spécifier l’intervalle de mise à jour, définissez la spécifier la fréquence à laquelle l’application doit vérifier les mises à jour propriétés dans le mises à jour de l’Application boîte de dialogue.To specify the update interval, set the Specify how frequently the application should check for updates properties in the Application Updates dialog box.

Ceci est le même que le maximumAge et unité les attributs de la mise à jour élément dans le manifeste de déploiement.This is the same as setting the maximumAge and unit attributes of the Update element in the deployment manifest.

Par exemple, vous pouvez souhaiter une vérification à chaque exécution de l'application, une fois par semaine ou une fois par mois.For example, you may want to check each time the application runs, or one time a week, or one time a month. 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.If a network connection is not present at the specified time, the update check is performed the next time that the application runs.

Présentation d'une interface utilisateur pour les mises à jourProviding a User Interface for Updates

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.When using this strategy, the application developer provides a user interface that enables the user to choose when or how often the application will check for updates. 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.For example, you might provide a "Check for Updates Now" command, or an "Update Settings" dialog box that has choices for different update intervals. Le ClickOnceClickOnce API de déploiement fournissent une infrastructure pour la programmation de votre propre interface utilisateur de mise à jour.The ClickOnceClickOnce deployment APIs provide a framework for programming your own update user interface. Pour plus d'informations, consultez l'espace de noms System.Deployment.Application.For more information, see the System.Deployment.Application namespace.

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.If your application uses deployment APIs to control its own update logic, you should block update checking as described in "Blocking Update Checking" in the following section.

Cette stratégie est spécialement appropriée lorsque vous avez besoin de plusieurs stratégies de mise à jour pour des utilisateurs différents.This strategy works best when you need different update strategies for different users.

Blocage de la vérification des mises à jourBlocking Update Checking

Il est également possible de faire en sorte que votre application ne vérifie jamais les mises à jour.It is also possible to prevent your application from ever checking for updates. 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 ClickOnceClickOnce.For example, you might have a simple application that will never be updated, but you want to take advantage of the ease of installation provide by ClickOnceClickOnce deployment.

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.You should also block update checking if your application uses deployment APIs to perform its own updates; see "Providing a User Interface for Updates" earlier in this topic.

Pour bloquer la vérification de la mise à jour, désactivez la l’application doit vérifier les mises à jour case à cocher dans la boîte de dialogue d’Application des mises à jour.To block update checking, clear the The application should check for updates check box in the Application Updates Dialog Box.

Vous pouvez également bloquer la vérification des mises à jour en supprimant la balise <Subscription> dans le manifeste de déploiement.You can also block update checking by removing the <Subscription> tag from the deployment manifest.

Élévation d'autorisations et mises à jourPermission Elevation and Updates

Si une nouvelle version d'une application ClickOnceClickOnce requiert l'exécution d'un niveau de confiance supérieur à la version précédente, ClickOnceClickOnce invite l'utilisateur à indiquer s'il souhaite que ce niveau supérieur de confiance soit accordé à l'application.If a new version of a ClickOnceClickOnce application requires a higher level of trust to run than the previous version, ClickOnceClickOnce will prompt the user, asking him if he wants the application to be granted this higher level of trust. Si l'utilisateur refuse d'accorder le niveau de confiance supérieur, la mise à jour n'est pas installée.If the user declines to grant the higher trust level, the update will not install. ClickOnceClickOnce invitera l'utilisateur à installer de nouveau l'application lors du prochain redémarrage. will prompt the user to install the application again when it is next restarted. 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.If the user declines to grant the higher level of trust at this point, and the update is not marked as required, the old version of the application will run. 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.However, if the update is required, the application will not run again until the user accepts the higher trust level.

Si vous utilisez le déploiement d'applications approuvées, vous ne recevrez aucune invite concernant les niveaux de confiance.No prompting for trust levels will occur if you use Trusted Application Deployment. Pour plus d'informations, consultez Trusted Application Deployment Overview.For more information, see Trusted Application Deployment Overview.

Voir aussiSee Also

System.Deployment.Application
Sécurité et déploiement ClickOnce ClickOnce Security and Deployment
Choix d’une stratégie de déploiement ClickOnce Choosing a ClickOnce Deployment Strategy
Sécurisation des applications ClickOnce Securing ClickOnce Applications
Mises à jour des applications par ClickOnce How ClickOnce Performs Application Updates
Guide pratique pour gérer les mises à jour pour une application ClickOnceHow to: Manage Updates for a ClickOnce Application