Voila, je viens de créer mon code pour un auto updater, il vérifie des ficher .txt sur un hébergeur et ou l'updater ce trouve,
Tout marche, si ficher version.txt différent alors il me dit mise a jour disponible
mais dans la textbox il me met erreur du DL et ne télécharge pas la MaJ.
voici le code:
Option Explicit On
Imports System.IO
Imports System.IO.Compression
Imports System.Net
Public Class Form1
Dim finish As Boolean
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try ' NEWS
My.Computer.Network.DownloadFile("http://127.0.0.1/maj/news.txt", "news.txt") 'Télécharge les news depuis le site.
Dim up As New System.IO.StreamReader("news.txt") 'Déclaration de la variable de lecture du fichier.
While up.EndOfStream = False
ListBox1.Items.Add(up.ReadLine) ' Insertion des news dans l'application.
End While
up.Close() ' Important : Ferme le processus qui lisait dans le fichier télécharger.
Kill("news.txt") 'Suprimation du fichier précédament télécharger pour les news.
Catch ex As Exception
ListBox1.Items.Add("Impossible de lire les news.") ' Si une erreur survient on écrit sa à la place des news.
End Try ' FIN DES NEWS
Try ' VERIFICATION DE LA VERSION
If System.IO.File.Exists("version.txt") = False Then 'Si le PC n'a pas le fichier de version
My.Computer.Network.DownloadFile("http://127.0.0.1/maj/version0.txt", "version.txt")
Process.Start("Uplauncher.exe") ' Relance du uplauncher
Me.Close()
ElseIf System.IO.File.Exists("version.txt") = True Then 'COMPARATION DE LA VERSION
My.Computer.Network.DownloadFile("http://127.0.0.1/maj/version.txt", "vers_site.txt")
Dim vn As New System.IO.StreamReader("version.txt")
Dim vni As New System.IO.StreamReader("vers_site.txt")
Dim nk As String
Dim nki As String
nk = vn.ReadToEnd
nki = vni.ReadToEnd
vn.Close()
vni.Close()
Kill("vers_site.txt")
If nk < nki Then ' La version sur le site est plus grande que celle sur le PC. Il y a une nouvelle version.
MsgBox("Une nouvelle version est disponnible.") ' Avertissement qu'il y a une nouvelle version
Button1.Enabled = False
ListBox1.Items.Add("Une nouvelle version est disponnible.")
End If
ElseIf System.IO.File.Exists("version.txt") = False Then 'Si le PC n'a pas le fichier de version
My.Computer.Network.DownloadFile("http://127.0.0.1/maj/version0.txt", "version.txt")
Process.Start("Uplauncher.exe") ' Relance du uplauncher
Me.Close()
End If
Catch ex As Exception
ListBox1.Items.Add("Une erreur est survenue lors de la vérification de la version.")
End Try ' FIN DE VERIFICATION VERSION
Dim MySocket As New BazSocket ' Regarde si serveur est on ou off
MySocket.Connect("127.0.0.1", "80")
Dim tcpClient As New Sockets.TcpClient
Dim IP As String = "127.0.0.1"
Dim Port As Int32 = "80"
Dim IPAddress As IPAddress = IPAddress.Parse(IP)
Try
tcpClient.Connect(IP, Port)
Catch err As Exception
Label2.ForeColor = Color.Red
Label2.Text = "OFF"
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Process.Start("Tool.exe")
Catch ex As Exception
ListBox1.Items.Add("Impossible de lancer le Tool.")
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
If System.IO.File.Exists("version.txt") = True Then 'COMPARATION DE LA VERSION
My.Computer.Network.DownloadFile("http://127.0.0.1/maj/version.txt", "vers_site.txt")
Dim vn As New System.IO.StreamReader("version.txt")
Dim vni As New System.IO.StreamReader("vers_site.txt")
Dim nk As String
Dim nki As String
nk = vn.ReadToEnd
nki = vni.ReadToEnd
vni.Close()
vn.Close()
Kill("vers_site.txt")
While nk < nki ' La version sur le site est plus grande que celle sur le PC. Il y a une nouvelle version.
Button2.Enabled = False
ListBox1.Items.Add("Téléchargement des fichiers.")
Dim dlversion As String
Dim vno As New System.IO.StreamReader("version.txt")
Dim unzi As Object
dlversion = vno.ReadToEnd
vno.Close()
dlversion = dlversion + 1
ProgressBar1.Visible = True
ProgressBar1.Style = ProgressBarStyle.Marquee
My.Computer.Network.DownloadFile("http://127.0.0.1/maj/update/" & dlversion & ".txt", dlversion & ".txt")
Dim vw As New System.IO.StreamWriter("version.txt")
vw.Write(dlversion)
vw.Close()
unzi = dlversion & ".txt"
nk = nk + 1
Dim vers As New System.IO.StreamReader(dlversion & ".txt")
While vers.EndOfStream = False
Dim lien As Object = vers.ReadLine
My.Computer.Network.DownloadFile(lien, "")
End While
If nk > nki Or nk = nki Then
ProgressBar1.Style = ProgressBarStyle.Continuous
ProgressBar1.Value = 100
finish = True
ListBox1.Items.Add("Téléchargement terminé.")
End If
End While
If nk > nki Or nk nki And finish False Then
MsgBox("Actuellement il n'y a aucune nouvelle version.")
ListBox1.Items.Add("Actuellement il n'y a aucune nouvelle version.")
End If
Else
MsgBox("Impossible de lire le fichier version.txt. Relancez l'uplauncher.")
ListBox1.Items.Add("Impossible de lire le fichier version.txt. Relancez l'uplauncher.")
End If
Catch ex As Exception
ListBox1.Items.Add("Erreur lors de la mise à jour.")
End Try
Button1.Enabled = True
End Sub
et bien un code imaginé pour le uplauncher, sinon c'est le language de vb.
et voici ce qu'il me met au débogage:
Une exception de première chance de type 'System.Net.Sockets.SocketException' s'est produite dans System.dll
Une exception de première chance de type 'System.Net.WebException' s'est produite dans System.dll
Une exception de première chance de type 'System.Net.Sockets.SocketException' s'est produite dans System.dll
Une exception de première chance de type 'System.Net.WebException' s'est produite dans System.dll
Une partie est de moi.
Vous n’avez pas trouvé la réponse que vous recherchez ?
On est pas des debugger professionnels de code à distance par inter-pensé
Fais donc un debugge pas-à-pas pour voir exactement d'où vient le problème et ainsi le corriger.
De toute façon vu l'erreur qu'il te donne, tu vas être vite fixé.
MsgBox("Impossible de lire le fichier version.txt. Relancez l'uplauncher.")
ListBox1.Items.Add("Impossible de lire le fichier version.txt. Relancez l'uplauncher.")
End If
Catch ex As Exception
ListBox1.Items.Add("Erreur lors de la mise à jour.")
End Try
Button1.Enabled = True
il me dit quand je clic sur le ! : Interception NullReferencException.
Super !! On est bien avancé.
Tu devrais plutôt désactiver ces Try..Catch qui englobe tout (c'est d'ailleurs déconseillé et tu as la le parfait exemple du pourquoi) et la vérité tu connaitra.
Tu me pose ces questions car je n'ai que 4 messages ?
Non. Je demande cela car je n'ai aucune envie de débugger un code fait par quelqu'un d'autre que toi.
Commence par apprendre les bases de la programmation avant de copier-coller un code que tu ne comprends pas.
Bah voilà. Erreur 404 => Fichier introuvable.
Vérifie que ton serveur est bien lancé (que tu accède bien à ton localhost 127.0.0.1) et si le fichier existe bien (au préalable, confirme bien le contenu de ta variable "dlversion".