Google Chrome se met à jour automatiquement toutes les cinq heures . Je veux cloner cette fonctionnalité exacte dans ma propre application. Quel est le meilleur moyen d'implémenter cette fonctionnalité sous Windows?
Réponses
Trop de publicités?Pour reproduire ce comportement de mise à jour vous avez besoin de deux choses:
Un programme de mise à jour de l'application qui vérifie les mises à jour régulièrement. Si une mise à jour est trouvé, il doit l'installer automatiquement. La plus commerciale de l'installation des outils de création inclure le bon de mise à jour des applications. Vous pouvez essayer d'écrire un programme de mise à jour vous-même, mais ce n'est pas aussi facile qu'il y paraît.
Par des installations utilisateur pour chacun de vos versions de produit. Une installation par utilisateur écrit des données uniquement dans le dossier de profil utilisateur (AppData Roaming dossier, etc.) et HKEY_CURRENT_USER. Pas de Fichiers de Programme ou HKEY_LOCAL_MACHINE.
Par utilisateur installations sont tenus de sorte que vous pouvez effectuer la mise à niveau en silence. Si l'installation est par machine, version plus récente de Windows affichera l'invite d'élévation et l'utilisateur ne saura pas ce qui se passe.
Le Programme De Mise À Jour
Certains programmes de mise à jour de l'utilisation des services. Pour les mises à jour automatiques, ce n'est pas une vraie solution, car le service d'installation des besoins des privilèges d'Administrateur. Donc votre processus d'installation et les mises à jour ultérieures montrerait invites d'élévation.
Une autre approche est d'utiliser un utilisateur par application de mise à jour. Il ne nécessite pas d'élévation et il peut être installé dans le dossier de l'application. Ce type de programme de mise à jour peut s'exécuter en tant que tâche planifiée ou à partir de votre application (exécuter au démarrage de votre application).
Dans les deux scénarios, vous devez considérer que le programme de mise à jour peut-être besoin de mettre à jour lui-même. Ainsi, le processus qui effectue la mise à jour doit être un processus temporaire (par exemple une copie temporaire de l'application de mise à jour). Il devrait également fonctionner sans élévation. C'est pourquoi un service n'est pas une bonne idée. Il aurait besoin de s'arrêter avant la mise à jour, l'utilisation d'un processus temporaire qui s'occupe de la mise à jour et de commencer à nouveau lorsque vous avez terminé.
Autres choses à considérer sont:
- des problèmes de permissions (si le processus de mise à jour des besoins et des privilèges ou de l'altitude)
- emplacements de téléchargement
- mise à jour le mécanisme de détection (la façon dont le programme de mise à jour détecte si une nouvelle version devrait être installé ou pas)
Les mises à jour
Une idée fausse commune est que les mises à jour devraient être les fichiers de l'application (comme la principale application EXE). Ce qui est rarement le cas, car une mise à jour peut-être besoin d'écraser plus que juste un fichier.
La plupart des mises à jour de packages d'installation (MSI par exemple) ou des correctifs (MSP). C'est la meilleure approche, car ils gèrent l'ensemble de la logique de mise à jour:
- détecter les applications en cours d'exécution
- mise à jour des ressources
- mettre à jour les informations de produit (raccourcis, applet Programmes et Fonctionnalités dans le Panneau de Contrôle, etc.)
Les paquets d'Installation également de simplifier l'application de mise à jour. Avec ce type de mises à jour la mise à jour des besoins seulement pour détecter les mises à jour disponibles, de les télécharger et de les exécuter.
Les mises à jour de deux façons:
- mises à jour majeures: l'ancienne version est complètement désinstallé avant la nouvelle est installé
- mises à jour mineures: l'ancienne version est patché
Programme d'installation de Windows a un grand soutien pour les deux d'entre eux, de sorte que vous pouvez utiliser des packages MSI et MSP. Il prend également en charge les installations en mode silencieux, pour tous vos besoins de mise à jour à faire est d'exécuter le package avec un paramètre de ligne de commande.
Ces packages de support par utilisateur ou par l'installation de machines, par le biais de ALLUSERS de la propriété.
Mise à jour de la distribution
Une fois que vous décidez sur un programme de mise à jour et certains packages de mise à jour, vous avez également besoin d'un mécanisme de distribution:
- un moyen d'informer le programme de mise à jour les mises à jour sont disponibles (par exemple, les informations de mise à jour de fichiers sur votre serveur)
- une façon de détecter si une mise à jour est installé ou pas (si il est installé qu'une seule fois)
Tout cela n'est pas très facile. C'est pourquoi beaucoup de l'utilisation de produits de tiers, programmes de mise à jour. Même certains commerciale de l'installation des outils de création offrent des programmes de mise à jour de votre colis.
Un personnalisé programme de mise à jour est principalement utilisé par de très grandes entreprises avec beaucoup de produits, parce que l'investissement en vaut la peine pour eux.