Update voor een programma

Status
Niet open voor verdere reacties.
Hier de link naar het programma: http://www.mediafire.com/?6zayzqwi8fxdq5d

Er zijn dus wel een paar probleempjes zoals je zal gaan merken tijdens het gebruik.
Probleem 1 = De tekst van label1 verandert niet in: Checking for updates.... (wat hij MET backgroundworker WEL doet?!)
Probleem 2 = Hij geeft aan dat er een nieuwere versie is, terwijl je al de nieuwste gebruikt.

Kan het zijn dat probleem 2 zo is op te lossen?
Zie hier de code die ik nog niet gebruik, maar wat zou kunnen werken:
Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Label1.Text = "Zoeken naar updates"
        Button1.Enabled = False

        If WebClient1.DownloadString("http://www.mftpfaa.webs.com/version.txt") = "1.52" Then
            Label1.Text = "Je gebruikt al de nieuwste versie."
            '  ElseIf WebClient1.DownloadString("http://mftpfaa.webs.com/version.txt") > "1.52" Then
            '  Label1.Text = "Er is een update."
        Else
            Label1.Text = "Er is geen update."
        End If
        Button1.Enabled = True
    End Sub

Die error kan simpel oplossen door CheckForIllegalCrossThreadCalls = False voor het aanroepen van de thread te plaatsen.
Overigens raad ik wel aan om de BGW te behouden, voor functies als het controleren op updates is zo'n ding eigenlijk wel nodig.

Wat doet die regel precies? (ik wil wel wat leren :rolleyes:)

Die BGW werkte wel fijn ja. Ik zet hem weer terug ;)
 
Laatst bewerkt door een moderator:
Ok ;) Als je me wel wilt vertellen wat welke regel precies doet? Want ik ben pas 14, en heb wel zin om lekker te leren (visual basic dan:P)

Die BGW ga ik onthouden ;) Nu loopt de form ook niet meer vast, en verandert de tekst van label1 WEL in Checking for updates.
Maar een backgroundworker doet dus eigenlijk werk op de achtergrond, zodat het echte programma gewoon verder gebruikt kan worden?



Edit: Ik dacht dat de BGW niet werkte. Deed hij ook niet, maar ik was vergeten hem aan te roepen:D
 
Laatst bewerkt:
Kijk eens: http://www.themightyatom.nl/stuff/Programma_updater.zip

Ik heb wel het één en ander veranderd. In plaats van 3 getallen zijn het er nu 4, omdat je ook 4 getallen kan opgeven op de Assembly Information dialog:
AssemblyInformation.jpg


Hier haalt tie het versie nummer vandaan door middel van My.Application.Info.Version.ToString.Replace(".", Nothing) en dat vergelijkt tie dan met het versienummer in het online tekstbestand.
Als extraatje heb ik ook een ProgressBar toegevoegd. Hiermee laat je de gebruiker weten dat het programma bezig is en dat je even moet wachten.
 
Ok ik ga het zo bekijken. (Waarom bij ophalen van versie nummer, .replace en dan ".", Nothing ? Wat betekent dat?
P.s.: Ik ga zo douchen dus zie het daarna ;)
Waar geef ik de fileversion op?
En wat is het verschil tussen File version en Assembly version? Moet ik bij beide hetzelfde getal invullen?
 
(Wat had ik nu graag quotes gebruikt, maar blijkbaar mag dat hier niet als je direct na iemand reageert. :S Ik heb nog nooit zoiets belachelijks gezien.)

---------------------------------------------------------------
Dat haalt de punten weg.
1.5.2.0. word dan 1520, das makkelijk met controleren.
---------------------------------------------------------------
In je solution explorer dubbelklik je op My Project.
Dan zie je een nieuwe pagina met een aantal tabs aan de rechterkant.
Klik op de Application Tab (het kan zijn dat deze al actief is)
Klik op de knop Assembly Information.
Ziedaar. :)
---------------------------------------------------------------
Het verschil weet ik niet precies maar je moet wel bij beide hetzelfde invullen.
 
Wow! Ziet er goed uit!!
Ik ben erachter gekomen dat je alleen Assembly version hoeft in te vullen als nieuwe versie. Maar toch zal ik beide gebruiken ;) Thanks!
If New WebClient().DownloadString("http://mftpfaa.webs.com/version.txt") > My.Application.Info.Version.ToString.Replace(".", Nothing) Then
Het eerste stukje van die regel zegt toch dat er een nieuwe webclient aangemaakt moet worden? Waar staat dat (".", Nothing) dan voor?

Dit begrijp ik allen niet (dat van UpdateAvailable as boolean wel ;) dat ga ik bij een ander project ook nog gebruiken!!)

Code:
Button1.Enabled = True
        pgbUpdateCheck.Visible = False
        If UpdateAvailable Then
            Label1.Text = "Er is een update."
        Else
            Label1.Text = "Er is geen update."
        End If

Hoe kan het dat hij goed werkt, terwijl je niet zegt:
if updateavailable = true then??
je zou toch verwachten dat hij dan op true moet ingesteld zijn?

(Moet er nu tussen de cijfers in mijn bestand op internet ook een punt??

Van mij mag je wel quotes gebruiken dit keer:P
 
Laatst bewerkt:
Dat klopt.

Replace(".", Nothing) zegt letterlijk vervang punten (.) met niks.

Bijvoorbeeld:
aA.bB.cC
wordt:
aAbBcC

if updateavailable then werkt ook, want standaard is dit true, spreek het maar eens hardop uit, je zegt letterlijk "als update beschikbaar is dan" wat eigenlijk hetzelfde betekend als if updateavailable = true then

In je online version bestand kun je beter geen punten neerzetten, maar gewoon hele getallen zetten
1530 bijvoorbeeld.
 
Laatst bewerkt:
Mooi dat jij al zoveel kennis hebt ;)
Ben je nog bezig met leuke projecten?

Ok. Nou als eerste wil ik je/u een compliment geven omdat je gewoon super goed kan uitleggen en daar door leer ik ook wat ik typ. Vind je het goed als ik je update programma gebruik in mijn programma om kinderen de tafels van rekenen te leren? Als je wil dat ik je naam of forum naam in de about box noem, als persoon die zorgde voor de updater dan hoor ik het wel

Toch nog even over de cijfers van de updater...
Is het ook goed als ik gewoon 1.5.0.0 doe? Dus niet die laatste twee gebruiken maar gewoon als 0. welke moet ik dan op internet zetten? Optie 1 = 1.5.0.0 of optie 1.5? ik denk dat ik je antwoord al weet, namelijk allebei, maar toch voor de zekerheid.
 
Laatst bewerkt door een moderator:
Beste Luuk,

Wanneer je een toevoeging op je vorige bericht hebt zonder dat er een reactie tussen zit raad ik je aan gewoon je bericht aan te passen.

Nu plaats je 3 berichten vlak achter elkaar, iets dat de leesbaarheid van een vraag niet ten goede komt.

Graag de volgende keer hier op letten :)
 
Nee je kan beter alle 4 de getallen gebruiken ZONDER een punt.
Dat is makkelijk voor later bij het controleren.

Als je dat gaat gebruiken heb ik misschien nog iets veel beters voor je. Een complete CheckForUpdate functie met ingebouwde fout afhandeling.
Als je dat gaat gebruiken reupload dan je hele project zodat ik het voor je kan inbouwen.
 
Nee, ik heb hier voorlopig wel genoeg aan. Moet je naam er nog bij?
 
Nog heel even kort over die punten. Want als hij die er zelf uithaalt, dan maakt het toch niet uit of ik op de website wel met punten werk?
 
Jawel, want die punten haalt hij niet uit dat online textbestand, of je moet .Replace(".", Nothing) toevoegen aan de regel die dat bestand inleest.
Waarom moeilijk doen als het ook makkelijk kan?
 
Laatst bewerkt:
Toch klopt er iets niet. Als ik het programma nog eens uitvoer in VB.
Dit zijn even wat gegevens:
Versie programma: 1520
Versie nummer internet (http://luuknl.webs.com/Programmas/Programma updater/Version.txt): 1520
Dat zegt hij: Er is een update!

Als ik het project laat draaien zegt hij dat er een update is. Dat klopt dus niet...

Edit: Ik heb jouw versie nog eens gedownload en geprobeerd, maar die zegt het OOK...?!
 
Laatst bewerkt:
Ik zie dat je WebClient1 weer terug hebt geplaatst. Eigenlijk heb je dat ding helemaal niet nodig, je kan namelijk ook een WebClient maken via code.
En zou het niet mooier zijn als het programma zelf de nieuwe versie download en opstart? Nu moet je dat nog steeds zelf doen door op de link te klikken. Beetje omslachtig, niet? :)

Heb het effe getest en bij mij zegt tie gewoon netjes dat er geen update beschikbaar is, maar ik gebruik wel een andere host.
Als ik jouw host gebruik zegt tie inderdaad dat er een update is terwijl beide versienummers hetzelfde zijn.

Ik heb het vermoeden dat dat komt omdat je een spatie in je url hebt zitten. Haal die weg of vervang het met een underscore ( _ ).

Dus:
...luuknl.webs.com/Programmas/Programma%20updater/Version.txt
word dan:
...luuknl.webs.com/Programmas/Programma_updater/Version.txt

Dat is nou wat ik bedoel, er schort nog van alles aan.
Ik zal een tweede form aan je project toevoegen met mijn volledig werkende CheckForUpdate als een demo, dan kan je later bepalen of je die wilt gaan gebruiken.
 
Laatst bewerkt:
ik volg het nu een klein beetje, ( sorry dat ik er zomaar tussen gaat zitten ) maar is er nu een code die al werkt ? ik zou het graag ook willen gebruiken voor all mijn programmatjes !
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan