PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [VB.NET] Updatefunktion



c2x
17.03.2010, 10:47
Folgende Updatefunktion habe ich eingebaut (Hauptfunktionen sind in einer DLL):


Dim WithEvents downloader As New FileDownload()

Private Sub update_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim site As New Xml.XmlDocument
site.Load("http://DOMAIN.de/update.xml")
Dim reader As Xml.XmlNodeReader = New Xml.XmlNodeReader(site)

While reader.Read

If reader.GetAttribute("version") = "0.9.1.0" Then
downloader.startDownload("http://DOMAIN.de/installer.exe ", "%temp%\installer.exe")
Else : MsgBox("Keine neuere Version verfügbar!")
Me.Close()
End If
End While
End Sub
End Class

Die Sub sucht in einer update.xml auf meinem Server nach dem Attribut "version". Ist die Version "0.9.1.0", sollte der installer heruntergeladen werden (nach Temp) und ausgeführt werden.

update.xml:

<update>
<programm version="0.9.1.0" />
</update>

Leider funktioniert das ganze nicht wie von mir gedacht, es poppt jedes mal nur die Messagebox auf.

Hat jemand Ideen?

hackerking
17.03.2010, 11:59
Gibts schon, undzwar besser, von ThePapst

c2x
17.03.2010, 12:10
Achso. Naja, war halt mal ein versuch sowas selbst zu schreiben ;)

Kannst du die Updatefunktion (falls du sie haben solltest) mal reuppen?

Planxty
17.03.2010, 14:54
http://rapidshare.com/files/364579936/VB.NET_-_Update_Software.rar

c2x
17.03.2010, 15:02
Fettes THX :)

Sawyer
17.03.2010, 15:58
Zwei Personen hatten ja per PN um einen Reupp gebeten, aber da scheint sich ja jetzt erledigt zu haben. Jedenfalls hab ich den Link auch mal im Original-Thread aktualisiert.

MfG, Sawyer

c2x
18.03.2010, 12:33
Gibt ein kleines Problem. Die Versionsangabe in der version.txt ist niedriger als die Assemblyversion meines Programmes, trotzdem sagt der Updater jedes mal, dass ein Update verfügbar ist :confused:

Gestern Abend ist mir noch nichts eingefallen, wie ich das Problem lösen könnte (lag wohl auch daran, dass ich vorher schon 7 Stunden vor der Kiste gehockt habe -.-).

Planxty
18.03.2010, 15:32
Die Versionsangabe in der version.txt ist niedriger als die Assemblyversion meines Programmes, trotzdem sagt der Updater jedes mal, dass ein Update verfügbar ist :confused:
ich glaub die updatesoftware war darauf beschränkt dass dein "server" (die txt)immer am aktuellsten ist, demnach ist sie entweder gleich oder wenn sie sich unterscheidet gibts ne neuere.
Einfach aus dem = ein >= machen


alter Code:

If LokaleVersion = OnlineVersionL Then
Aktuell()
Else
NeueVersion()
End Ifneuer Code:

If LokaleVersion >= OnlineVersionL Then
Aktuell()
Else
NeueVersion()
End If

c2x
18.03.2010, 16:18
Manchmal finde ich es einfach nur zum Kotzen... bei mir kam es in letzter Zeit öfters vor, dass ich mal einen Punkt, Komma oder sonstwas übersehen hab :(

Kann geclosed werden; Planxty, deine gute Tat hast du heute erbracht :D