Mise à jour de mon programme

cs_Skeatwin Messages postés 25 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 19 juillet 2011 - 24 juil. 2008 à 14:12
cs_Skeatwin Messages postés 25 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 19 juillet 2011 - 24 juil. 2008 à 18:35
Bonjour, j'ai un problème avec la mise à jour d'un de mes programme. Je voudrai que Mon programme vérifie si il y a une mise à jour dispo pour lui. Et que si oui qu'il la télécharge et l'installe. J'espère avoir bien expliquer . Merci d'avence.

4 réponses

dimitriusai Messages postés 76 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 7 mai 2009 1
24 juil. 2008 à 14:18
Mon collègue à développé un système identique pour un de nos logiciels étant assez souvent mis à jour soit updaté chez chaque client.
En fait au démarrage du logiciel on prend la version actuel du soft, par ex 1.1.0.1 et lors de mise à jour on change une page php hébergé ou tu veux qui contient la version actuelle. Après comparaison, si il s'avère qu'elle est plus récente, se lance une application séparée (l'updater) qui va fermer ton appli, dll les nouveaux fichiers/exécutables et les remplacer modifier.

C'est une solution comme une autre qui fonctionna assez bien dans notre cas et qui ne n'ous oblige pas d'utiliser ClickOnce de Visual Studio.
0
cs_Skeatwin Messages postés 25 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 19 juillet 2011
24 juil. 2008 à 14:43
merci de ta réponce, Peut tu me décrire la phase ou il y a une mise à jour , car si il y en à une je n'ai pas de site pour la stocké et que le l'updater là télécharge, si tu pouver m'aider ça serai bien
0
dimitriusai Messages postés 76 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 7 mai 2009 1
24 juil. 2008 à 14:58
d'après moi il faut bien un moyen ou un autre que ton application distante , chez un client par exemple puisse savoir qu'il y a une nouvelle qui existe.
Un site web, un ftp avec le nouveau fichier, ou tout autre moyen accesible depuis internet est nécessaire.
Pour un site web, suffit de comparer les valeurs de version, pour un ftp, tu peux imaginé de stocké cela dans un fichier texte ou simplement regarder si un 1.1.1.0 exe existe pour remplacer 1.1.0.9 (je sort ca comme cela pour le ftp, faut voir un peu ce que tu veux).
A faire lors de chaque démarrage de ton programme, ou chaque nouvelle semaine, à toi de voir aussi.

If (NewVersion > vCurrentVersion)
Then
Return
True
Else
Return
False
End
If

New version étant défini par les différents moyen proposé ci dessus.
Dès qu'on a vu que la version doit être mise à jour, voici comment je ferais.

'Effacement de l'ancien update.rar
   'Download du nouveau update.rar
      'Si le téléchargement est ok
          'Vérification si le fichier n'est pas occupé (IsOpen)
               'Unzip
                  'Replace myapplication.exe, ou le directory complet.
Pour finir un petit shell pour lancer ta nouvelle appli  (Shell(Filename), AppWinStyle.NormalFocus)



Sorry je peux pas donner de code, car confidentiel.$

Hésite pas si tu as des questions plus précises.

http://www.codeproject.com/KB/vb/autoupdate.aspx

http://morpheus.developpez.com/clickonce/

Aussi non ceci est plus complexe mais peut te plaire aussi.

 
0
cs_Skeatwin Messages postés 25 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 19 juillet 2011
24 juil. 2008 à 18:35
Escuse j'étais partie, j'ai essayer ta méthode avec le Sky Drive de Microsoft (Disque dur virtuel en ligne de 5go gratuit), mais ne marche pas (j'explique aprés), et  la dl de free (ftp), ne marche pas non plus. Sur ces deux serveur j'ai mis la mise à jour 1.0.0.1, l'utilisateur à la 1.0.0.0(elle vérifie sur le serveur que le texte qui a dans 'Mise.txt' est '0' .  si il y a un lien, alors elle avertie à l'utilisateur qu'il y a une mise à jour et la télécharge à l'addresse Web donné dans 'Mise.txt', ex:
'Nous somme en load dur form1, est on vérifi la mise à jour

My

.Computer.Network.DownloadFile(
"ftp://......./Mise.txt",
"C:\mise.txt")mise =

My.Computer.FileSystem.ReadAllText(
"C:\mise.txt")

If mise =
"0"
Then

'Il n'y a pas de mise à jour.

Elserep = MsgBox(

"Une Mise à jour est disponible, installer?",32+vbyesno)

      If rep = vbNo
Then

      'L'utilisateur ne veut pas installer la mise à jour.

       Else       My
.Computer.Network.DownloadFile(mise,
"c:\setup.exe") 'Télécharge en l'occurence mise= ftp://dl.free.fr/........

       Msgbox("Téléchargement Terminer!")

       Shell(

"c:\setup")       Application.Exit()

       End
If

End
If

Mais le fichier ne souvrai pas alor je sui partie dans c:\ est le fichier setup étais incomplé, alors que le téléchargement c'est bien dérouler!, il est incomplé dans le sence ou l'icone est cette d'une extention exe par defaut et que le fichier setup fai 24,8KO alors que sur le serveur il fait 10,45MO!!!

Je ne comprend pas, si on pouver m'éclairecire.

J'ai penser que c'étai le ftp qui avait des problème, si quelqun conner un site d'hébergement simple ftp en ligne gratuit, minimum 50MO et que l'adresse est du style : ftp://exemple.fr/ ou ftp:/64.89.155.488/ ça serai cool merci d'avance
0
Rejoignez-nous