Je n'ai pas “get” comment un programme peut mettre à jour lui-même. Comment puis-je faire de ma mise à jour du logiciel?
Dire que j'en fais un .exe fichier et tout est peachy. Merveilleux il fonctionne.
Dire que j'ai travaillé sur une nouvelle fonctionnalité sur le logiciel et je veux qu'il soit disponible pour les personnes qui ont déjà l'ancienne version, comment puis-je rendre le logiciel trouver ma nouvelle version, le patch, et ensuite aller sur les affaires.
Je n'arrive pas à envelopper ma tête autour de la question.
Merci.
EDIT:
Je suis désolé pour la confusion, mais j'ai été en ce sens un code plus sage réponse. Est-il quelque chose de spécial dans mon code je doit avoir pour permettre la mise à jour?
Par exemple, si je veux ajouter une nouvelle fonctionnalité, comment puis-je ajouter une "méthode" à un déjà emballés .exe? :S Qui m'a dans un émerillon.
- Vous ne pouvez pas ajouter une méthode à une déjà emballés .exe, .dll, ou quoi que ce soit d'autre. Vous venez de remplacer la totalité du fichier avec une version plus récente. Il existe des outils qui peuvent comparer les plus anciens/les plus récentes versions du fichier et de générer un "patch" qui contient uniquement les modifications, mais qui permet seulement de diminuer la taille de téléchargement et le peu de gens aujourd'hui s'embêter avec ça. Le résultat final est toujours le même que si vous aviez simplement copié le fichier le plus récent par rapport à l'ancien.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de regarder Cliquez Une Fois De Déploiement.
Cela crée une téléchargeables setup exe qui vous charger sur le web. L'utilisateur exécute ce lieu ou les téléchargements et l'exécute. Cette enveloppe votre exe dans le code qui permettra de vérifier le site web (à une fréquence de votre choix) pour les mises à jour. Si il en trouve un, il va l'installer pour l'utilisateur.
Vous n'avez pas à apporter de modifications particulières à votre code pour activer cette. au-delà de l'incrémentation du numéro de version. Juste à modifier et à étendre votre code comme d'habitude, la compilation, la construction, le paquet et l'envoyer.
Une chose à noter, c'est que ClickOnce ne prend pas en charge l'installation des applications qui nécessitent un accès administratif:
Donc, si votre application nécessite un niveau d'administration de l'accès à courir ou même l'installer puis ce n'est pas la solution pour vous.
ClickOnce
jusqu'à la lecture de vos commentaires. 🙁Une solution populaire est d'avoir un processus distinct de remplacer les fichiers nécessaires.
Avez-vous déjà remarqué que Firefox a pour redémarrer à chaque fois qu'il se met à jour? Eh bien, c'est parce qu'un processus séparé (updater.exe) est à télécharger les fichiers, la fermeture de firefox, en remplacement des fichiers, et ensuite, à partir de firefox à nouveau.
modifier bien sûr, cela suppose que vous êtes l'hôte d'une liste de mises à jour en ligne de la mise à jour du programme peut vérifier (un flux RSS, ou même un simple fichier texte).
CCleaner
[ programme pour nettoyer votre système ], même à ne pas mettre à jour lui-même. En cliquant surUpdate
il vient de téléchargements de la nouvelle configuration. maintenant, vous devez installer manuellement le logiciel à nouveau, ce qui bien sûr désinstaller la version précédente. Je ne sais pas pourquoi CCleaner programmeurs disent que c'est une mise à jour 😉Habituellement, le processus est comme suit:
De sûr, vous pouvez avoir beaucoup de variantes, mais c'est la façon la plus simple de le faire.
Sur Windows, au moins, certains logiciels installer un programme de mise à jour deamon qui est toujours et vérifie les mises à jour du logiciel, il prend soin (GoogleUpdater, par exemple).
Idée, vous pourriez avoir un chargeur d'application qui ne le vérifier pour vous, puis, si nécessaire, mises à jour de l'application principale exe avant de le lancer?
Pour windows (généralement à cause de windows verrouillage de l' .exe fichier alors qu'il est exécuté)
Bien, de la manière habituelle, c'est que votre application vérifie quelque part (généralement sur Internet) régulièrement de nouvelles versions. Ce peut-être à chaque démarrage ou une fois par semaine ou quoi que ce soit.
Là, vous pouvez simplement mettre par exemple un fichier texte contenant le numéro de la version actuelle. Si celui-ci serait plus récente que la version de l'application installée, vous pouvez télécharger une mise à jour (n'oubliez pas de signer et vérifier les signatures) et installer la nouvelle version.
Rendre votre application font, à l'occasion d'une demande sur le web, sur votre serveur. Ont qui demande de renvoyer un fichier qui contient le numéro de version et un lien vers la dernière version de votre programme d'installation. Si ce numéro de version est plus grand que le numéro de version du programme en cours d'exécution pense que c'est, avoir votre programme à télécharger le nouveau fichier d'installation et lancez-le.
Vous ne modifiez pas votre .exe.
Vous lancez un processus distinct qui télécharge une nouvelle version du fichier. La nouvelle version remplace l'ancienne version. Aucune modification nécessaire.
À partir d'un code de point de vue, je tiens à avoir une approche qui se compose d'une interface simple appelé IRun et un autre appelé IUpdated:
Maintenant, ma principale de l'application suffit de charger et "exécuter" une bibliothèque à l'aide de la réflexion qui tourne dans le lancement de l'application réelle.
La principale de l'application exécutable ne cela suit:
La méthode de mise à jour n'a les mêmes étapes pour les mises à jour de l'application réelle.
Enfin
C'est bien sûr à condition que vous voulez "do it yourself", ClickOnce est en fait une très bonne méthode aussi, sans doute mieux, mais vous donne moins de contrôle. Le principal exécutable de l'application est assez simple pour éviter d'avoir à le mettre à jour lui-même ou devrait être de toute façon.