2009-05-04 6 views

Répondre

3

Si vous n'utilisez pas l'option ClickOnce, vous finirez probablement par l'utiliser vous-même. L'une des considérations sera que le client appelant a accès au serveur de mise à jour - sans aucun doute sur le Web. Les appels HTTP sur le port 80 ou HTTPS sur le port 443 sont généralement autorisés via les pare-feu. C'est probablement un bon point de départ pour votre médium.

J'ai déployé un projet qui effectue ce genre de chose en effectuant un appel à un service Web pour déterminer si une mise à jour est disponible. Le service Web examine un répertoire sur notre serveur Web et examine une convention que nous avons pour un fichier zip nommé. Le client appelant effectue une détermination basée sur le contrôle de version indiquant si une mise à jour est disponible.

Si une mise à jour est disponible, l'application engendre un exécutable qui effectue le téléchargement (dans mon cas, elle le décompresse également), puis relance le point d'entrée principal vers l'application et quitte le programme de mise à jour. L'utilisation d'un exécutable séparé dans une manière spawing/shelling vous permet de mettre à jour le tronc principal de l'application, mais vous vous retrouvez dans une situation délicate où il est difficile de mettre à jour l'exécutable de mise à jour.

Ce n'est pas aussi gracieux que ClickOnce, mais ça a bien marché pour moi. Je n'ai pas utilisé ClickOnce, donc je ne suis pas au courant si cela présente des lacunes en termes d'isolation de profil utilisateur.

+1

Je voudrais upvote celui-ci et celui ci-dessus, mais il dit que je n'ai pas assez de rep. Merci! – SteveGSD

3

En supposant que vous écrivez une application client, ClickOnce est probablement le meilleur/le plus facile à faire.

+0

Cela nécessite-t-il toujours que l'application soit installée uniquement pour l'utilisateur actuel? J'ai entendu que c'était un émetteur avec des versions avant 2008. – JeffO

+1

Je n'arrive pas à obtenir ce truc ClickOnce pour fonctionner comme je le veux. Je l'ai déjà essayé et il semble buggy/une façon non standard de mettre à jour un programme. Je voudrais que le programme s'installe comme une application normale, et que les mises à jour automatiques soient disponibles à l'utilisateur par un clic de bouton. Est-ce faisable en faisant le programme dans une DLL ou quelque chose? – SteveGSD

+0

Je n'ai jamais utilisé ClickOnce personnellement pour déployer une application, seulement pour jouer avec. Je pense que par défaut, il vérifie automatiquement les mises à jour au démarrage, mais je crois que cela peut être configuré. Je ne suis pas sûr si il peut être configuré comment l'application est installée, mais je crois qu'il est installé par utilisateur par défaut. – Andy

Questions connexes