J'ai été la pensée de roulement mon propre code pour l'activation de mon Delphi application pour mettre à jour de manière transparente, je vais pour "libérer souvent, la libération anticipée de la mentalité de" l'ailleurs. Il existe différents Delphi solutions (à la fois gratuit et payé), et j'aimerais vous demander si vous avez été à l'aide de l'un d'eux ou tout simplement allé avec vos propres solutions dans ce domaine. Tous les commentaires sur la fonction d'auto-mise à jour du sujet sont les bienvenus.
Réponses
Trop de publicités?Ce système que vous utilisez, il peut être utile de savoir que vous pouvez renommer un en cours d'exécution .exe fichier. Afin de renommer le fichier, copier dans un nouveau fichier œuvres de nice. Et la prochaine fois que quelqu'un lancer le programme qu'ils vont lancer une nouvelle version. C'est bien sûr très pratique dans l'environnement où de nombreux utilisateurs à exécuter le même .exe fichier, comme dans citrix/terminal serveur/partage réseau en cas.
Il y a des années, j'ai écrit un outil simple qui est lancé à la place de la véritable programme, vérifie les mises à jour, des charges et les installe (si disponible), et commence enfin l'application réelle.
Il y a cependant des problèmes avec cette approche si votre programme fonctionne correctement administré de l'environnement, où les utilisateurs n'ont normalement pas accès en écriture aux répertoires du programme. Vous pouvez plus simplement mettre à jour votre propre programme dans de tels environnements. C'est pourquoi de nombreux programmes ces jours viennent avec leur propre programme de mise à jour de l'outil, qui peut être installé afin de fonctionner avec des autorisations élevées, de sorte que les mises à jour du programme peut être appliquée, même si seuls les utilisateurs standard ne jamais ouvrir une session sur le système.
Vous devez décider si votre public cible peut être supposé fonctionner sur l'alimentation de l'utilisateur ou de l'administrateur des comptes, ou si vous allez avoir à traiter avec des problèmes mentionnés ci-dessus. Avec Vista, les choses se sont considérablement plus difficile déjà.
Avec tous ces problèmes (accès au net sur les procurations, manquant les autorisations en écriture sur les répertoires d'installation, la nécessité de mettre à jour les fichiers de la mise à jour elle-même est l'utilisation, pour n'en citer que quelques-uns) je n'aurais pas essayer de nouveau ce code sur mon propre. Beaucoup mieux pour vérifier si l'une des solutions disponibles ne tous vous en avez besoin.
J'utilise la Synapse routines GetHTTP de retour d'une ressource spécifique, et si trouvé, puis vérifier que le système local pour voir si une mise à jour est nécessaire. Si oui, alors la ressource me dit que la page pour accéder à lancer et je lance l'URL dans shell execute donc les utilisateurs navigateur préféré est affiché.
La plupart du temps, le téléchargement est un programme d'installation créé par InnoSetup qui met à jour les utilisateurs du système et de la base de données de la version la plus récente. Quand un nouveau "payé" mise à niveau est nécessaire, je puis l'envoyer à l'utilisateur à un "achat de mise à niveau" de la forme. Mes ressources sur le web sont des pages ASP, afin que je puisse rediriger vers une autre ressource basée sur les clients numéro de version.
Pour l'application principale (notre application dispose d'un serveur pièce, et un client morceau) j'ai un chargeur qui va vérifier le serveur pour voir si la version du fichier client sur le serveur est différente de la version sur le client...dans l'affirmative, il demande à l'utilisateur si l'utilisateur veut mettre à jour/rétablir. Nous avons choisi de demander à l'utilisateur que parfois accidentelle bug peut le faire dans le système et l'utilisateur a le downgrade/upgrade seulement des machines spécifiques pour aider à résoudre les problèmes. J'maintenir un enregistrement de base de données avec la version minimale requise qui est mis à jour via la base de données de patch, donc si une version doit être à la retraite, puis le dossier est mis à jour en conséquence.
J'utilise TmxWebUpdate. C'est gratuit, simple et vous donne un bon contrôle sur le processus. Fait, j'ai même TMS Component Pack avec TWebUpdate mais n'a jamais vraiment trouvé une bonne raison de changer.
Edit: Lien mis à jour