55 votes

Comment puis-je faire marche arrière sur une application ClickOnce ?

Existe-t-il un moyen (un bricolage fera l'affaire) de permettre à un utilisateur de revenir à une version antérieure d'un fichier de type ClickOnce application déployée sur le réseau ?

J'ai regardé dans les documents et l'API et il semble qu'il n'y ait aucun moyen. Vous puede Vous pouvez choisir de manière sélective si vous souhaitez mettre à jour, mais une fois la mise à jour effectuée, il est apparemment impossible de revenir en arrière.

92voto

Jason Hornor Points 421

Vous pouvez revenir à une version antérieure du côté serveur en modifiant le fichier manifeste du serveur. Lorsque le client redémarre l'application, il constate qu'il dispose d'une version différente de la version "actuelle" indiquée par le serveur et il télécharge la nouvelle version. Le fichier manifeste du serveur pointe généralement toujours vers la version la plus récente, mais ce n'est pas obligatoire.

Voici comment le modifier (j'ai publié en utilisant Visual Studio 2008. D'autres versions peuvent avoir une structure de dossier de publication différente).

Dans le même dossier que le fichier publish.htm se trouve un fichier XML document appelé [appName].application . Il s'agit du fichier manifeste côté serveur que le client utilise pour comparer sa version actuelle. Ce document contient la version "actuelle" que le client doit exécuter ainsi que l'emplacement sur le serveur où se trouvent les fichiers de déploiement.

Au même endroit que le publish.htm Il existe également un dossier appelé "Application Files". Ce dossier contient des sous-dossiers pour chacune des publications précédentes. Dans chacun de ces sous-dossiers se trouve un autre document XML portant le même nom que celui que j'ai mentionné plus haut et qui s'appelle [appName].application . Copiez ce fichier (à partir du dossier qui contient la version à laquelle vous voulez revenir) et collez-le dans le même dossier que le fichier publish.htm (deux niveaux au-dessus). Lorsque l'application client redémarrera, elle apparaîtra comme si une nouvelle version était disponible, téléchargez-la et exécutez-la. Le client exécutera alors une version antérieure.

0 votes

Merci Jason, j'ai fini par utiliser cette approche :)

2 votes

En outre, vous pouvez manipuler le fichier publish.htm pour refléter le numéro de version correspondant (dans le bloc AppInfo).

3 votes

Malheureusement, cela ne fonctionne pas lorsque la version minimale requise est définie, et qu'elle est supérieure à la version vers laquelle nous voulons revenir.

21voto

Jonathan Allen Points 23540

ClickOnce utilisera la version que vous lui enverrez. Si vous leur envoyez une ancienne version, ils reviendront à cette ancienne version.

En mai dernier, mon ami David a écrit un article sur la façon de faire cela sur une base par utilisateur. Nous pouvons littéralement avoir chaque utilisateur sur une version différente. L'application indique même à la base de données quelle version l'utilisateur souhaite, de sorte qu'il pourrait en théorie changer de version et simplement redémarrer l'application.

Versionnage à grain fin avec ClickOnce

0 votes

Cheers, Cela semble être une bonne approche !

9voto

Patrick Desjardins Points 51478

Vous pouvez aller dans Ajouter/Supprimer une application et sélectionner votre application et choisir de récupérer la dernière installation à la place.

2voto

Gulzar Nazim Points 35342

Vous pouvez utiliser MAGEUI pour revenir à une version antérieure du manifeste sur le serveur. Regardez ça .

0 votes

Vous pouvez, à condition (a) que la version actuellement installée n'ait jamais eu la version minimale requise définie dans le manifeste, et (b) la possibilité de ne pas pouvoir lire les paramètres de l'application de la version précédente. Voir mon commentaire sur cette réponse stackoverflow.com/a/273719/607117 pour plus d'informations sur ce dernier point.

2voto

rjrapson Points 1232

Si vous regardez l'emplacement de votre déploiement, vous verrez toutes les versions précédentes, dans un dossier séparé avec le numéro de version ajouté, ainsi que le manifeste de déploiement, également avec le numéro de version ajouté.

Vous pouvez renommer l'un d'entre eux pour qu'il devienne le déploiement actuel et, lors de la prochaine mise à jour de l'application, la version à laquelle vous êtes revenu sera utilisée.

0 votes

Je ne sais pas si ça marcherait. Le manifeste de déploiement contient un chemin vers le manifeste de l'application, mais le manifeste de l'application contient également une version, je crois. Vous ne pouvez pas non plus le mettre à jour sans démissionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X