[VB.NET] Aggiornamento automatico tramite web

venerdì 03 aprile 2009 - 19.50

luca.piccirillo Profilo | Newbie

ho un applicazione windows form in vb.net 2008 e per la distribuzione vorrei evitare di usare la pubblicazione ClickOnce di VS per problematiche varie

vorrei sapere se qualcuno può indicarmi come realizzare un modulo che verifichi la presenza di nuovi aggiornamenti, effettui il download del nuovo file e lo sostituisca a quello esistente

non sono molto esperto ma mi oriento abbastanza bene nel codice ad oggetti
spero che qualcuno possa aiutarmi!

Anonimo Profilo | Senior Member

Ciao, io ho realizzato un sistema del genere in questo modo:
Ho realizzato un eseguibile che all'avvio verifica via web se sono presenti aggiornamento, nel caso ci siano li scarica e successivamente avvia l'eseguibile vero e proprio del programma.
La ricerca degli aggiornamenti avviene attraverso dei file di versione, uno locale e uno remoto.
Quello remoto contiene il numero di versione più recente e i file ad esso associati.
Quando lo starter viene avviato verifica appunto se la versione locale è inferiore a quella remota e nel caso lo sia scarcia la lista dei file indicati e, dopo aver aggiornato il file di versione locale, avvia l'eseguibile vero e proprio.
Non posso fornirti il codice poichè l'ho sviluppato per un cliente, ma se ti può interessare una soluzione del genere ti posso dare informazioni più approfondite.
Riccardo

luca.piccirillo Profilo | Newbie

interessante xo mi hai dato un idea migliore, dimmi un po' se secondo te è realizzabile:

come hai datto tu a verificare la presenza di aggiornamenti dovrebbe essere un eseguibile diverso ma nel mio caso avrei bisogno di distribuire il minor numero possibile di file quindi avevo pensato che a scaricare l' updater dovrebbe essere lo stesso eseguibile principale
inoltre anzichè leggere la versione installata da un file separato avevo pensato di ricavarla dalle info assembly dell' exe principale solo che a doverle leggere a questo punto è un altro eseguibile e nn so come fare

nn so se mi sono spiegato, tu dici che si può fare?
e come faccio quindi a leggere le info assembly di un file eseguibile da un altro?

Anonimo Profilo | Senior Member

Beh il ragionamento fila, solo che l'eseguibile, essendo in esecuzione, non si auto-sovrascrive
Riccardo

Caino Profilo | Newbie

semplicemente l'eseguibile che controlla l'aggiornamento deve essere diverso dall'applicazione da aggiornare.

whiteflash Profilo | Junior Member

io ho fatto una cosa simile

il programma, controlla ogni tot giorni, se c'è un nuovo aggiornamento, se c'è avvisa l'utente per il download lo scarica e riavvia l'app,
al riavvio il programma controlla se è presente un file tipo aggiornamento.zip, se è presente estrae il contenuto, avvia l'eseguibile
dell'aggiornamento estratto dal file zip e chiude il programma...

poi nell'eseguibile dell'aggiornamento ho messo un controllo che fa avviare l'aggiornamento solo quando il programma termina completamente
un pò stile firefox
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5