Question

    

Cette question a déjà une réponse ici:

         

Nous sommes en train de développer un système très complexe composé de plusieurs services WCF, d'applications ASP.NET MVC, d'outils d'administration (applications Windows Forms) ... Certains d'entre eux auront des instances s'exécutant sur plusieurs serveurs. Nous recherchons une bonne solution de mise à jour automatique pour un tel système. Très probablement, nous aurions besoin d'une application (service) de mise à jour automatique distincte qui effectuera le travail ou d'une application d'administration centralisée qui connaîtra les versions de toutes les instances installées et effectuera la mise à jour à distance. Existe-t-il un bon produit / une bonne bibliothèque, faite à cet effet, que vous connaissez ou avez expérimenté?

Était-ce utile?

La solution

Personnellement, j'utilise une méthodologie très simple pour tout type de mise à jour automatique:

  • avoir un installateur
  • Vérifiez la nouvelle version (simple WebClient et comparez les chiffres avec votre version actuelle de AssemblyVersion)
  • Si la version est plus récente, téléchargez le dernier programme d'installation (utilisez SSL pour des raisons de sécurité)
  • Exécutez le programme d'installation téléchargé et fermez l'application. (à ce stade, vous devez avoir les privilèges d’administrateur si votre installateur vous demande d’être administrateur)

L'installateur devrait s'occuper du reste. De cette façon, vous aurez toujours la dernière version et un installateur avec la dernière version.

Autres conseils

Permettez-moi de commencer par dire que je suis le fondateur de la société qui propose une solution de mise à jour complète comprenant:

wyUpdate gère tous les problèmes de contrôle de compte UAC sous Vista / Windows 7 et tous les problèmes d’autorisation de fichier qui apparaissent inévitablement lorsque vous essayez de mettre à jour un logiciel complexe.

Nous proposons également des licences gratuites de wyBuild pour des projets open source , mais si vous voulez juste construire votre propre programme de mise à jour, vous pouvez cannibaliser notre code source librement.

Cela étant dit, si vous souhaitez créer votre propre programme de mise à jour, voici quelques astuces:

Construire votre propre programme de mise à jour

Les wyUpdate et Code de mise à jour automatique mentionné ci-dessus. Vous pouvez le cannibaliser et l'utiliser à vos propres fins. Certains des algorithmes qu'il contient:

  • Prise en charge complète de Windows Vista / Windows 7 UAC
  • Possibilité pour les utilisateurs limités de vérifier et de mettre à jour s'ils possèdent des informations d'identification
  • Prise en charge de Winnky Corporate Inernet. (Si vous avez déjà travaillé avec une entreprise, le problème est réel).
  • Extraction, correction et installation rapides des fichiers.
  • Prise en charge du registre.
  • restaurer les fichiers & amp; Registre en cas d'erreur ou d'annulation par l'utilisateur
  • Mise à jour automatique (aucun fichier n'est laissé)

Nous avons également les spécifications de fichier ici .

Mise à jour automatique

Comme il est indispensable d’être automatique, laissez-moi vous expliquer comment procéder avec notre contrôle AutomaticUpdater .

Nous utilisons des canaux nommés pour communiquer entre le programme de mise à jour autonome (wyUpdate) et le contrôle Automatic Updater situé sur la fiche de votre programme. wyUpdate signale la progression du programme de mise à jour automatique et ce dernier peut demander à wyUpdate d'annuler sa progression, de démarrer le téléchargement, de lancer l'extraction, etc.

Ceci maintient le programme de mise à jour séparé de votre application.

En fait, le code exact des tubes nommés que nous utilisons est décrit dans un article que j'ai écrit il y a quelque temps: Application C # multi-processus telle que Google Chrome .

Voici une solution open source que j'ai écrite pour répondre aux besoins spécifiques des applications WinForms et WPF. L’idée générale est d’avoir la plus grande souplesse, avec le minimum de frais généraux possible.

Ainsi, l'intégration est extrêmement facile et la bibliothèque fait pratiquement tout pour vous, y compris les opérations de synchronisation. Il est également très flexible et vous permet de déterminer les tâches à exécuter et les conditions dans lesquelles vous établissez les règles (ou utilisez celles qui existent déjà). Enfin, notons la prise en charge de toute source de mises à jour (Web, BitTorrent, etc.) et de tout format de flux - vous pouvez écrire pour vous-même. p>

Les mises à jour à froid (nécessitant un redémarrage de l'application) sont également prises en charge et sont effectuées automatiquement, sauf si vous effectuez un "échange à chaud". est spécifié pour la tâche.

Cela se réduit à une seule DLL, inférieure à 70 Ko.

Plus de détails sur http: //www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/

Le code est disponible sur la http://github.com/synhershko/NAppUpdate (sous licence Apache 2.0). licence)

Je prévois de l'étendre davantage lorsque j'aurai plus de temps, mais honnêtement, vous devriez pouvoir l'améliorer rapidement vous-même pour tout ce que vous ne supportez pas actuellement.

La mise à jour automatique des services WCF et des sites Web ASP.NET devrait également pouvoir être effectuée avec ce dernier, à l'aide de "remplacement à chaud". des fichiers et " iisreset " tâche si nécessaire.

ClickOnce pour vos outils d'administration.

Après avoir étudié une poignée d'options, nous avons décidé d'utiliser la bibliothèque AppLife Update . notre projet d'entreprise.

AppLife Update peut ajouter rapidement et facilement une fonctionnalité de mise à jour automatique pour vos applications .NET, mais il est également flexible en raison de son API complète.

Consultez la liste complète des fonctionnalités et des vidéos de démonstration sur leur site Web.

Pour les applications WPF simples, celles qui utilisent peut-être l'installation Xcopy, vous pouvez utiliser ce module AppUpdater . C'est un module source, quelques lignes de code, permettant d'ajouter des fonctionnalités de mise à jour à une application WPF simple.

C'est gratuit.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top