Hallo zusammen ich hab ein .net Anwendung geschrieben und wollte den Usern ein Online Update anbieten. Gesagt getan mal an Zeichenbrett gesetzt und was gebastelt.
Nun hier ma der Code in meiner Hauptanwendung für den Updater
und hier der Updater:
nun der Download funktioniert 1a auch der Vergleich doch wird der Updater gestartet wird er in einer Schleife gestartet und ich muss neustarten und er führt sein code nicht bis zum ende aus. Nun ich hab auch ma rumgebastellt und das Programm wurde mit einem Timeout abgelaufen geschlossen hat aber den Code auch nicht bis zum ende ausgeführt. Ich bin jetzt Zimlich Ratlos ich muss sagen ich bin Anfänger und steh jetzt echt blöd da in Google konnte ich nichts Hilfreiches finden.
Danke für eure Hilfe
mfg
aCiD1
Nun hier ma der Code in meiner Hauptanwendung für den Updater
VB.NET-Quellcode
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Dim value As String = My.Application.Info.DirectoryPath
- 'Läd die versions.txt Datei von http://www.chebre.de/hostschanger/update/ herunter und speichert sie in den Ordner \temp\
- My.Computer.Network.DownloadFile _
- ("http://www.meineseite.de/update/version.txt", _
- My.Application.Info.DirectoryPath & "\ups\versions.txt")
- Dim sIP As String = "1.0.1.3" 'Speichert die Versions nummer des Aktuellen Programms als As String
- 'Dim sIP As String = "x.x.x.x" immer ändern mit Versions nummer.
- Dim sBuffer As String = _
- My.Computer.FileSystem.ReadAllText( _
- My.Application.Info.DirectoryPath & "\ups\versions.txt") 'Angabe wo die Versions.txt der Neusten Software gespeichert wurde
- If sBuffer.Contains(sIP & " " & "Version") Then 'Überprüft die Version in der versions.txt vom Webserver wenn sie stimmt
- My.Computer.FileSystem.DeleteFile(My.Application.Info.DirectoryPath & "\ups\versions.txt")
- MsgBox("Kein Update vorhanden") 'startet sie else wenn sie stimmt dann kommt die Message "Kein Update vorhanden"
- Else
- My.Computer.FileSystem.DeleteFile(My.Application.Info.DirectoryPath & "\ups\versions.txt")
- Dim file As System.IO.FileStream
- file = System.IO.File.Create(My.Application.Info.DirectoryPath & _
- "\updater\Pfad.txt")
- file.Close()
- With My.Computer.FileSystem.OpenTextFileWriter(My.Application.Info.DirectoryPath & _
- "\updater\Pfad.txt", False)
- .WriteLine(My.Application.Info.DirectoryPath)
- .Close()
- End With
- Shell(My.Application.Info.DirectoryPath & "\updater\updater.exe", vbNormalFocus, False, -1)
- End
- End If
- End Sub
und hier der Updater:
VB.NET-Quellcode
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Dim value As String = My.Application.Info.DirectoryPath 'Liest den Pfad in dem der Updater ist aus und Speichert sie in dem Befehl My.Application.Info.DirectoryPath
- Dim fileReader As System.IO.StreamReader 'Liest den Pfad aus der Pfad.txt aus wo das eigendliche Upzudatende Programm liegt
- fileReader = _
- My.Computer.FileSystem.OpenTextFileReader(My.Application.Info.DirectoryPath & "\Pfad.txt") 'Pfadangaber der Datei mit dem Pfad des Hauptprogrammes
- Dim stringReader As String
- stringReader = fileReader.ReadLine() 'Speichert den Pfad als stringReader
- Dim overwrite As Boolean
- 'Läd die dateien aus dem Web in das Updater Verzeichniss
- My.Computer.Network.DownloadFile( _
- "http://www.meineseite.de/update/HostsChanger.pdb", My.Application.Info.DirectoryPath & _
- "\HostsChanger.pdb", "", "", False, 100, overwrite, _
- FileIO.UICancelOption.ThrowException)
- My.Computer.Network.DownloadFile( _
- "http://www.meineseite.de/update/HostsChanger.exe", My.Application.Info.DirectoryPath & _
- "\HostsChanger.exe", "", "", False, 100, overwrite, _
- FileIO.UICancelOption.ThrowException)
- My.Computer.Network.DownloadFile( _
- "http://www.meineseite.de/update/HostsChanger.xml", My.Application.Info.DirectoryPath & _
- "\HostsChanger.xml", "", "", False, 100, overwrite, _
- FileIO.UICancelOption.ThrowException)
- My.Computer.Network.DownloadFile( _
- "http://www.meineseite.de/update/HostsChanger.exe.config", My.Application.Info.DirectoryPath & _
- "\HostsChanger.exe.config", "", "", False, 100, overwrite, _
- FileIO.UICancelOption.ThrowException)
- 'Kopiert die Dateien vom Updater- ind das Programmverzeichniss
- My.Computer.FileSystem.CopyFile(My.Application.Info.DirectoryPath & "\HostsChanger.pdb", _
- stringReader & "\HostsChanger.pdb", Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs, FileIO.UICancelOption.DoNothing)
- My.Computer.FileSystem.CopyFile(My.Application.Info.DirectoryPath & "\HostsChanger.exe", _
- stringReader & "\HostsChanger.exe", Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs, FileIO.UICancelOption.DoNothing)
- My.Computer.FileSystem.CopyFile(My.Application.Info.DirectoryPath & "\HostsChanger.xml", _
- stringReader & "\HostsChanger.xml", Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs, FileIO.UICancelOption.DoNothing)
- My.Computer.FileSystem.CopyFile(My.Application.Info.DirectoryPath & "\HostsChanger.exe.config", _
- stringReader & "\HostsChanger.exe.config", Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs, FileIO.UICancelOption.DoNothing)
- 'Löscht die Heruntergeladenen Daten
- My.Computer.FileSystem.DeleteFile(My.Application.Info.DirectoryPath & "\HostsChanger.pdb")
- My.Computer.FileSystem.DeleteFile(My.Application.Info.DirectoryPath & "\HostsChanger.exe")
- My.Computer.FileSystem.DeleteFile(My.Application.Info.DirectoryPath & "\HostsChanger.xml")
- My.Computer.FileSystem.DeleteFile(My.Application.Info.DirectoryPath & "\HostsChanger.exe.config")
- Shell(stringReader & "\updater\updater.exe", vbNormalFocus, False, -1) 'Startet das Hauptprogramm
- End
- End Sub
nun der Download funktioniert 1a auch der Vergleich doch wird der Updater gestartet wird er in einer Schleife gestartet und ich muss neustarten und er führt sein code nicht bis zum ende aus. Nun ich hab auch ma rumgebastellt und das Programm wurde mit einem Timeout abgelaufen geschlossen hat aber den Code auch nicht bis zum ende ausgeführt. Ich bin jetzt Zimlich Ratlos ich muss sagen ich bin Anfänger und steh jetzt echt blöd da in Google konnte ich nichts Hilfreiches finden.
Danke für eure Hilfe
mfg
aCiD1