Lors de l’utilisation de ClickOnce pour le déploiement d’application, on se demande souvent comment se comporte ClickOnce en fonction des différentes actions utilisateur et comment peut-on agir sur ce comportement.
Définition de la version minimum
Il est parfois nécessaire d’empêcher les utilisateurs
d’utiliser une ancienne version d’une application (compatibilité avec une base
de données sur un serveur, bug connu, etc...). Pour cela ClickOnce propose un
mécanisme de version minimum en dessous de laquelle une application ne pourra
plus se lancer. Cette option est définie dans le manifeste de déploiement comme
suite :
<deployment
install="true" trustURLParameters="true" minimumRequiredVersion="7.1.16.0">
Lorsque
ClickOnce trouve une mise à jour disponible, avant de proposer à l’utilisateur
la mise à jour, il vérifie si la version présente sur le serveur est la version
minimum. Dans ce cas aucune confirmation ne sera demandée à l’utilisateur et
ClickOnce démarrera automatiquement la mise à jour.
Définition de la périodicité
Le processus de mise à jour ClickOnce est régi par le
manifeste de déploiement. Dans celui-ci la souscription du client au mise à
jour se définis comme suit :
<subscription>
<update>
<expiration maximumAge="6"
unit="hours" />
</update>
</subscription>
La section « Expiration » définis la périodicité
selon laquelle ClickOnce vérifiera les mises à jour disponible.
La pop-up de confirmation de mise à jour :
Il existe 3 actions utilisateur possible :
Cliquer sur OK
Lorsque l’utilisateur confirme la mise à jour de
l’application, ClickOnce télécharge la nouvelle version de l’application puis
la démarre.
La version détectée est considéré comme obligatoire si
l’option <minimumRequiredVersion> est spécifiée dans le manifeste de
déploiement et que la version spécifiée est supérieure à la version disponible
sur le poste client. Dans ce cas, ClickOnce ne propose pas de possibilité de
refuser la mise à jour et se comportera comme si l’utilisateur avait cliqué sur
OK.
Cliquer sur SKIP
Lorsque l’utilisateur clique sur SKIP, clickOnce démarre
l’application déjà installé sur le poste client. De plus ClickOnce ne proposera
plus la mise à jour pour cette version pendant une semaine. Il est impossible
de configurer le délai après lequel ClickOnce repropose la mise à jour.
ClickOnce ne propose plus de mise à jour mais continue de
vérifier la présence de mise à jour sur le serveur. Ceci afin de détecter la
présence d’une version supérieur à celle que l’utilisateur a skippé :
- Ex : l’utilisateur skipp la version 2.0 et
la version 3.0 est disponible sur le serveur è
nouvelle pop-up de mise à jour
Fermer la pop-up via la croix rouge Windows
Lorsque l’utilisateur ferme la pop-up via la croix rouge de
la fenêtre Windows, ClickOnce démarre l’application installé sur le poste
client, mais n’enregistre pas la mise à jour comme « à skipper ».
ClickOnce fera de nouveau une vérification au prochain démarrage de
l’application, et proposera de nouveau une mise à jour à l’utilisateur.
Bien sur il est possible de piloter les mise à jour directement depuis le code C# afin d'ajouter certaine taches de mise à jour ou encore d'en modifier le comportement.