Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Errore aggiornamento applicazione
Forum - C# / VB.NET - [VB.NET] Errore aggiornamento applicazione

Avatar
cicciomillo (Normal User)
Newbie


Messaggi: 9
Iscritto: 01/03/2010

Segnala al moderatore
Postato alle 17:17
Mercoledì, 27/04/2011

Ciao a tutti
Vorrei inserire un tasto che permetta di scaricare un aggiornamento per l'applicazione stessa..
ho trovato un codice che ho adattato alle mie esigenze:
codice:

Dim up As New System.Net.WebClient
        up.DownloadFile("http://provalaun.altervista.org/vers.txt", "vers")
        Dim vers As String = My.Computer.FileSystem.ReadAllText("vers")
        Dim ver As String = My.Computer.FileSystem.ReadAllText("ver")
        If vers = ver Then
            MsgBox("Stai usando l'ultima versione.")
        Else
            Dim agg As String = Val(ver) + 1
            MsgBox("Scaricamento della versione " & agg & " in corso...")
            up.DownloadFile("http://provalaun.altervista.org/" & agg, "aggiornamento.exe")
            MsgBox("File Scaricato, apri aggiornamento.exe.")

            My.Computer.FileSystem.WriteAllText("ver", agg, False)
        End If


Con questo codice in pratica quando premo il bottone mette a confronto il file ver (che dovrebbe stare nella cartella dell'applicazione) con il file vers (che invece sta online) e se i valori dentro questi due file di testo sono uguali, il programma non si aggiorna, se invece il valore contenuto nel file di testo di vers e +1 di quello di ver dovrebbe scaricare l'aggiornamento (Almeno così ho capito).
Solo che quando provo ad aggiornare, mi esce:
Impossibile trovare il file X:\xxxxxx\xxx\Cartelladell'applicazione\ver
eppure il file ver c'è!
Qualche aiutino ? Altrimenti se proprio non si risolve potreste illustrarmi un altro metodo ?
Grazieeee

PM Quote
Avatar
noitide (Normal User)
Pro


Messaggi: 107
Iscritto: 24/06/2009

Segnala al moderatore
Postato alle 20:07
Mercoledì, 27/04/2011
il problema probabilmente sta qui
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim ver As String = My.Computer.FileSystem.ReadAllText("ver")



perchè mentre il file che scarichi da internet lo lasci senza estensione e lo chiami "vers" quello che crei tu manualmente si presume abbia estensione .txt piuttosto che .ini, ciò va specificato nell'assegnazione del valore alla variabile. prova ad aggiungere l'estensione del file ad esempio così

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim ver As String = My.Computer.FileSystem.ReadAllText("ver.txt")



e facci sapere :)

PM Quote
Avatar
cicciomillo (Normal User)
Newbie


Messaggi: 9
Iscritto: 01/03/2010

Segnala al moderatore
Postato alle 21:08
Mercoledì, 27/04/2011
Così funziona, gazie mille!! solo che ora mi dà "errore del server remoto 404" e non capisco il perchè..:d - risolto anche questo, mi è bastato eliminare "& agg" ... ma non c'è un modo di farlo installare da solo?? :asd:

Ultima modifica effettuata da cicciomillo il 27/04/2011 alle 21:12
PM Quote
Avatar
noitide (Normal User)
Pro


Messaggi: 107
Iscritto: 24/06/2009

Segnala al moderatore
Postato alle 15:16
Giovedì, 28/04/2011
cosa intendi con farlo installare da solo?? :-|

PM Quote
Avatar
cicciomillo (Normal User)
Newbie


Messaggi: 9
Iscritto: 01/03/2010

Segnala al moderatore
Postato alle 23:10
Giovedì, 28/04/2011
Scusatemi la mia scarsa "chiarezza" ma non mi so spiegare molto bene :D
In pratica ora l'applicazione riesce a scaricare l'aggiornamento..solo che per poterla aggiornare si dovrebbe ogni volta andare manualmente nella cartella dove risiede l'applicazione stessa e aprire il file scaricato...quello che vorrei fare io è che una volta scaricato l'aggiornamento esso si apra da solo e magari trovare un modo per far si che l'applicazione si chiuda per permettere la sovrascrizione della precedente versione  :)  Grazie davvero per l'aiuto che mi state dando :D

PM Quote
Avatar
Question (Normal User)
Rookie


Messaggi: 58
Iscritto: 14/12/2010

Segnala al moderatore
Postato alle 13:07
Venerdì, 29/04/2011
Non capisco che senso abbia scaricare il file .txt contenente la versione nella cartella del programma, non potresti semplicemente prendere il sorgente della pagina web? Sarebbe molto più comodo e veloce.

Per la seconda domanda: generalmente è proprio per questo che si usa un file esterno detto updater, ma se proprio ci tieni a fare l'applicazione portable allora dovresti :
1. generarne uno a runtime (possibilmente nella cartella dei file temporanei)
2. avviarlo
3. chiudere l'applicazione
4. (nel file updater generato) scaricare la nuova applicazione sovrascrivendo la vecchia
5. chiudere l'updater
6. cancellare l'updater


Ma ovviamente x64
PM Quote