2010-12-21 5 views
1

J'ai une application distribuée écrite en C# (4.0). Il est devenu une tâche importante de mettre à jour tous les clients chaque fois que je crée une nouvelle version. Je ne veux pas utiliser la méthode ClickOnce, car les organisations qui ont acheté mon logiciel ne souhaitent pas, dans certains cas, mettre à jour leurs clients.Comment j'architecte la mise à jour automatique de mes clients

Comment créer un tel mécanisme de mise à jour pour mes clients? Mes pensées sont de mettre en œuvre une sorte d'application de lancement qui vérifie un serveur pour la version la plus récente, met à jour si nécessaire et démarre le nouveau. Si aucune mise à jour n'est disponible, il démarre simplement l'application cliente. Ensuite, je vois un problème de mise à jour de l'application du lanceur, le client devrait-il être responsable de cela?

Comment résoudre ce problème de façon correcte et robuste, pour que le client puisse configurer ses clients pour des mises à jour ou non, puis permettre aux clients de fonctionner de manière totalement autonome? Autrement dit, sans supervision de l'utilisateur.

Cheers,

Répondre

0

Créez une application multi-niveaux clairement séparée. Ajoutez toute votre logique métier dans une classLibrary. Ajoutez cette bibliothèque comme référence à votre application. Créez ensuite une fonction checkFunction dans votre interface utilisateur. (par exemple vérifier une version "numéro" en appelant un webService)

En cas de version distante> localVersion télécharger une nouvelle DLL (enregistrer si nécessaire) et demander le redémarrage de votre application.

Si votre logique de l'interface utilisateur a changé aussi, télécharger un fichier de configuration complète nouvelle (avec la version removeOlder = true) et l'utilisateur de la demande pour le démarrer ou appelez Process.Start Ef ..

quelques idées sur votre topic - espérons que cela pourrait aider

0

Vous pouvez utiliser ClickOnce et désactiver simplement le checkForUpdate: MSDN : Disable Clickonce Default Updater.

+0

@ H4mm3rHead: Bien sûr, vous pouvez laisser le choix à votre utilisateur la première fois que votre application est lancée pour décider si cette application va être mise à jour ou non. – LaGrandMere

0

Il est un peu vieux, mais vous pouvez prendre des idées et des morceaux de code de la Updater Application Block qui a la fonctionnalité que vous avez décrite.

Questions connexes