Application auto update in vb.net

Soyez le premier à donner votre avis sur cette source.

Vue 23 553 fois - Téléchargée 2 088 fois

Description

Ce code permet de faire un auto update de fichiers depuis un serveur web dans votre application, (comme LiveUpdate) afin de mettre à jour une application ou des fichiers, l'update ferme l'application, fais les mises à jours y.c. l'executable et relance la nouvelle version.

Il permet de mettre à jours une liste de fichiers en fonction d'un fichier de référence contenu sur le serveur.

Le code contient 3 projets :
AutoUpdate (l'application moteur permettant les mises à jour)
MainApp (une application par défaut permettant la démo)
ServerManifest (application permettant de générer le fichier de mise à jour)

Principe de fonctionnement :
Vous créez un fichier de référence avec "ServerManifest".
Lors de l'exécution du programme "AutoUpdate", il se connecte au serveur et télécharge le fichier "ServerManifest.xml" qui contiens
la liste des fichiers, la date, la version, le répertoire, etc....
Le programme compare les fichiers contenus dans le répertoire de l'application et la version stockée sur le serveur.
Si le fichier est nouveau il le télécharge sous un autre nom, puis le copie au bon endroit.
Si le fichier est le même il ne fais rien.
Si le fichier n'existe pas il le télécharge sous un autre nom, puis le copie au bon endroit.

Utilisation du code tel quel :
Créez un répertoire "MainApp" sur votre serveur web.
Affectez les droits de lecture.
Exécutez le programme ServerManifest afin de créer le fichier XML de référence
Exécutez le programme "MainApp" pour lancer la mise à jour.

Ce code est une évolution du code trouvé à cette adresse http://www.codeproject.com/vb/net/autoupdate.asp, ma participation est d'y avoir ajouté la récursivité et la recréation automatique des répertoires et sous répertoires, j'ai également supprimé quelques bugs et l'ai rendu compatible VB.NET 2005.

@CEREAL

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

christian_grandjean
Messages postés
30
Date d'inscription
dimanche 7 novembre 2004
Statut
Membre
Dernière intervention
19 novembre 2013
2
normalemnt il suffit que le fichier soit en lecture sur le serveur et c'est tout. si c'est un serveur Linux essaie de mettre plus de droits comme par exemple 777 juste pour tester.
BBysera
Messages postés
1
Date d'inscription
samedi 2 mai 2009
Statut
Membre
Dernière intervention
14 décembre 2012

Super programme. Exactement ce que je cherchais, je vais pouvoir étudier les sources et l’appliquer sur mon patcher :)

Encore merci ;)
ben01n
Messages postés
65
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
4 août 2010

Merci pour cette appli qui m'a l'air très bien conçue.
Par contre, j'ai un petit soucis.
A chaque fois, quand il tente de download le 1er fichier j'ai l'erreur suivante :
"Le serveur distant a retourné une erreur : (403) interdit."
Je comprend bien que cela vient d'un mauvais paramétrage du serveur web où se trouve les fichiers mais je n'ai aucune idée de la manière pour régler ce problème.
une ptite idée ?
christian_grandjean
Messages postés
30
Date d'inscription
dimanche 7 novembre 2004
Statut
Membre
Dernière intervention
19 novembre 2013
2
Je te contacte sur MSN
Hydromelius
Messages postés
11
Date d'inscription
mardi 13 novembre 2007
Statut
Membre
Dernière intervention
15 février 2015

Salut, pour tout te dire non je m'en sors pas du tout (oui je reste limiter en vb) donc j'ai trouvé une parade simple pour pouvoir l'utiliser sans toute cette vérification de versions, dates, etc de cette manière:
Dim FileExists As Boolean = File.Exists(RealFileName)
If FileExists = True Then
File.Delete(RealFileName)
End If
Comme sa il supprime les fichiers et arriver à
If Not FileExists = True Then
isToUpgrade = True
il re-télécharge a savoir que j'ai que 3 fichier que sa pèse même pas 1mo donc sa gène pas du tout de re-télécharger a chaque fois le tout..
après pour automatiser le tout au démarrage j'aimerais bien si il y a moyen de faire simplement une comparaison de fichier XML pour me simplifier la chose vu que ma technique marche, je m'explique j'ai un XML sur mon disque avec marquer dedans 0.0.1 pareil sur le serveur de MaJ, au lancement de mon vb il ouvre form1 qui serai le code de vérification si c'est le même il passe a la form2 (le prog en question), si c'est pas le même (0.0.2) il lance un Call Shell("Auto-Update.exe").
je sais pas si c'est explicite mais je pense que ce serai plus simple pour moi et j'aimerais vraiment avoir un auto update sur mon log.. les base du vb sa va mais après sa devient la cata je m'en sort plus.. Sachant que sa reste dans le même principe que cette auto update pour la vérification.. après moi ce que je cherche c'est vraiment au plus simple il voit que le contenu est pas le même il lance l'auto update même si sur le disque j'ai 0.0.5 et sur le serveur 0.0.2 (après le numéro dans le xml sera plus un repère pour moi) j’ai chercher plein de code d’auto update et c’est le seul qui fait vraiment ce que je souhaite sans avoir une usine a gaz..
si ta le temps de m’aiguiller un peu : noumeres@hotmail.com sa sera surement plus simple quitte a ce que je reposter après pour poster le code si j’arrive a le faire avec ton aide..
Et oui désolé y a des gens faut tout leurs faire limite je croit que j’en fait parti :p
En espérant que tu puisse m’aider, merci d’avance.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.