UpLauncher vb.net

dextouxe - 14 nov. 2012 à 18:05
 Utilisateur anonyme - 15 nov. 2012 à 19:13
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


Cordialement.

17 réponses

Utilisateur anonyme
14 nov. 2012 à 18:30
Bonjour,

Sur quelle ligne se produit l'erreur ?

C'est un code que tu as développé toi même ?
0
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
0
Utilisateur anonyme
14 nov. 2012 à 20:11
Ceci ne répond à aucune de mes 2 questions.
Bonne chance pour la suite.
0
l'or du débogage, il n'y a pas d'erreur juste ça:

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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tu me pose ces questions car je n'ai que 4 messages ?
0
Utilisateur anonyme
14 nov. 2012 à 20:29
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é.

_____________
Kenji
0
a cet endroit:

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.
0
Sur le:
Catch ex As Exception 


il me dit: Interception NullReferencException.
0
Utilisateur anonyme
14 nov. 2012 à 21:22
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.

_____________
Kenji
0
Utilisateur anonyme
14 nov. 2012 à 21:31
Une partie est de moi.

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.
0
ok je test ça
0
je comprend le code
0
WebException , erreur (404) ici:

My.Computer.Network.DownloadFile("http://127.0.0.1/maj/update/" & dlversion & ".txt", dlversion & ".txt")


une fois les try enlevé dans le button2
0
Utilisateur anonyme
14 nov. 2012 à 22:53
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".

_____________
Kenji
0
j'ai remplacé par ça: My.Computer.Network.DownloadFile("http://127.0.0.1/maj/", dlversion & ".txt")

il ne me met plus l'erreur mais il me met une erreur ici: My.Computer.Network.DownloadFile(lien, "")

il dit exception ArgumentException non gérée. et il me créait un fichier avec le numéro de la version exemple 2 et dans ce fichier .txt il me met:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Index of /maj</title>
</head>

Index of /maj

<li>[/ Parent Directory]</li>
<li>[2.zip 2.zip]</li>
<li>[news.txt news.txt]</li>
<li>[update/ update/]</li>
<li>[vers_site.txt vers_site.txt]</li>
<li>[version.txt version.txt]</li>
<li>[version0.txt version0.txt]</li>

</html>
0
par contre il me met bien 2 dans le version.txt qui ce trouve dans le dossier debug. Mais ne télécharge pas le fichier .zip
0
Utilisateur anonyme
15 nov. 2012 à 19:13
Fais au moins l'effort de regarder l'aide de la méthode que tu utilises.
0
Rejoignez-nous