2013-07-17 1 views
0

Problème:Déterminer la version client de l'application au démarrage

Nous avons une application C#, .Net 3.5 qui est mise à jour manuellement sur les ordinateurs clients. Ne demandez même pas, nous ne pouvons pas faire les déploiements en un clic. Quand une nouvelle construction est créée et qu'un client n'a pas été mis à jour, je voudrais alerter le client (au démarrage) que l'application est obsolète et qu'une nouvelle construction doit être obtenue avant de continuer.

Je suis intéressé par ce que les approches d'autres ont peut-être utilisé pour résoudre le même problème (limiter les clients d'utiliser vieux builds)

Merci - Glenn

+0

Est-ce une application de serveur client? Est-ce que vous vous connectez au serveur avant de vous connecter? – Ehsan

Répondre

0

Vous devez créer un service Web qui renvoie le courant version de l'application. Le service doit être installé là où il est disponible pour les clients à appeler.

Ensuite, vous devez ajouter un appel au service et vérifier la version de l'application en cours d'exécution par rapport à la version du service.

+0

Approche intéressante - Je vais revoir cette option en plus de valider l'assemblage. Le problème avec la simple validation de l'assemblage est que vous n'avez pas encore quelque chose à comparer. Merci – user2284452

+0

Alexander - Je vais regarder combiner l'approche du service Web avec le client quelque chose de validation. Un problème est que nous suivons le # build du client qui est fourni par TeamCity. Merci pour les idées. Glenn – user2284452

0

notre application est connectée à un DB et nous assurons au démarrage de l'application que la version de l'application correspond à la version enregistrée dans la base de données. S'il ne correspond pas, un message s'affiche pour l'utilisateur. Si votre application ne se connecte pas à une base de données, je suppose qu'elle pourrait parler à un service WCF pour obtenir la dernière version. J'ai vu des gens simplement récupérer un fichier à partir d'un lecteur partagé et en lire la valeur. Cela nécessite que le chemin UNC partagé soit disponible pour tous les utilisateurs, ce qui n'est pas toujours pratique.

+0

Merci Michael - J'ai déjà utilisé cette approche. Dans ce cas, je voudrais valider le client avant même qu'une connexion à la base de données cible se produise. Glenn – user2284452

0

Utilisez-vous ClickOnce pour distribuer votre application? Si oui, vous pouvez spécifier la version minimum requise avant de le publier. Si non, vous pouvez gérer les versions des fichiers exécutables et les vérifier au démarrage. Quelque chose comme:

Assembly assembly = Assembly.GetExecutingAssembly(); 
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location); 
string version = fvi.FileVersion; 
+0

Je l'ai appelé un clic dans ma description, mais non, ClickOnce ou un clic n'est pas utilisé. – user2284452

+0

ClickOnce ne sert pas seulement à déployer l'application, mais plutôt à la distribuer aux utilisateurs finaux. –

Questions connexes