L’application ClickOnce ignore la demande de mise à jour (ou le lancement échoue si l’option ignorer est sélectionnée)

J’ai mis à jour mon application ClickOnce. Lorsque l’utilisateur s’exécute, il lui est demandé s’il souhaite installer la nouvelle version.

Je travaille dans un environnement hautement contrôlé. Lorsqu’une mise à jour est disponible, elle doit être installée (la compatibilité en amont avec la firebase database n’est pas assurée avec les anciennes versions).

Une autre option consiste à faire échouer l’exécution si vous appuyez sur skip (cela fonctionne également).

J’ai besoin d’un moyen de les empêcher de faire fonctionner une ancienne version de l’application.

Cet article répond à votre question. Je vous renvoie à l’article au lieu de simplement poster une réponse, car tout ce que l’article contient vaut la peine d’être connu.

http://www.sayedhashimi.com/CategoryView,category,ClickOnce.aspx

Voici l’extrait pertinent de l’article:

Forcer les mises à jour ClickOnce

Les mises à jour automatiques sont l’un des principaux atouts de ClickOnce. L’une des questions courantes que je me pose concernant les mises à jour est “Comment puis-je forcer une mise à jour sur l’utilisateur?”

Il y a trois choses à savoir pour imposer des mises à jour forcées aux utilisateurs:

1) Si votre application est une application en ligne, vos utilisateurs exécuteront toujours la version la plus récente. les applications en ligne sont téléchargées à chaque access à l’application. Ainsi, avec les applications en ligne, vous obtenez des mises à jour forcées par défaut.

2) Si votre application est une application installée, vous pouvez forcer les mises à jour à l’aide de l’atsortingbut MinimumRequiredVersion. Si vous publiez votre application à l’aide de Visual Studio, vous pouvez définir cette propriété à partir de la boîte de dialog Mises à jour.

3) La dernière chose à noter est que si votre application est une application installée (et que vous n’avez pas défini l’atsortingbut MinimumRequiredVersion), ClickOnce invitera l’utilisateur à afficher une boîte de dialog “Mise à jour disponible” UNIQUEMENT s’il lance l’application à partir du raccourci du menu Démarrer. . C’est-à-dire que si une application est une application installée et que l’utilisateur lance l’application à partir d’une URL, ClickOnce force la mise à jour.


J’ai aussi trouvé un autre bon article:

ClickOnce: Facilité et fiabilité pour le déploiement de Smart Client

Cela a parfaitement fonctionné pour moi. Ajoutez les éléments suivants au fichier de projet:

true $(ApplicationVersion) 

Notez que ApplicationVersion ne peut pas avoir une valeur telle que 1.0.0.* Dans le fichier projet et qu’il devrait être incrémenté au moment de la création pour que la mise à jour automatique fonctionne.

Si vous utilisez TeamCity , pour incrémenter le numéro de version, accédez à la page Générer la configuration de votre projet et définissez la propriété système suivante:

 system.ApplicationVersion = %build.number% 

Vous pouvez également obtenir que MSBuild incrémente la version dans le temps avec quelque chose comme ceci:

 true $([System.DateTime]::Now.ToSsortingng(yyyyMMdd)) $([System.DateTime]::Now.ToSsortingng(mmss)) 1.0.$(BuildNumber).$(RevisionNumber) $(ApplicationVersion) 

Cela m’a fonctionné en décochant l’application doit vérifier les mises à jour , et l’application a commencé la mise à jour sans demander à l’utilisateur après deux versions.

Entrez la description de l'image ici

Outre la réponse de David , installez simplement le package de nuget AutoUpdateProjectsMinimumRequiredClickOnceVersion dans votre projet. Une fois que votre projet est configuré pour vérifier les mises à jour et pour utiliser une version minimale requirejse, vous pourrez vous assurer que la version minimale requirejse correspond toujours à votre version actuelle (autrement dit, l’utilisateur sera toujours obligé de mettre à jour sa version la plus récente).

Pour forcer une mise à jour sur les clients, vous devez définir le champ de version minimale égal à la version actuelle que vous déployez. Ceci forcera la mise à jour sans l’option “ignorer”.