Newsgroup: it.comp.lang.visual-basic
Titolo: Aggiornamento automatico

Salve
vorrei fare un programmino che all'avvio controlla da un sito se sono 
presenti aggiornamenti del programma stesso, cioč un programma 
auto-aggiornante.
In particolare vorrei capire come si fa a fare in modo che il programma 
scarichi l'aggiornamento, si chiuda e si avvii la nuova versione, senza 
utilizzare un altro eseguibile.
Infatti ho pensato che appoggiandosi su un programmino a parte, si possa 
fare facilmente, ma come fare ad integrare l'autoaggiornamento nel programma 
stesso?
Qualcuno ha delle dritte da darmi, o un codice di esempio?
Grazie a tutti
gian

 Qualcuno ha delle dritte da darmi, o un codice di esempio?
Se il programma lo stai realizzando in VB 2005, hai a disposizione 
ClickOnce (cerca su google)
Altrimenti, sfrutti un "launcher" come hai già ipotizzato.
Ciao!
-- 
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca
 

 stesso?
Se non ti appoggi su un programma a parte quando tenti di soprascrivere
l'eseguibile oppure classi in uso ti viene creato un errore. L'unico modo
ihmo è creare un eseguibile a parte che gestisca tutta l'operazione. Quando
chiudi l'eseguibile e togli le istanze sulle classi puoi soprascrivere.
Ti consiglio di mettere su un sito un file txt che definisce le versioni dei
file che vuoi aggiornare in modo che il programma esterno verifichi di suo
la versione dell'eseguibile e quella online e in caso quella online sia
superiore effettuare l'aggiornamento.
Un sistema migliore non mi viene in mente.
Ciao.

 chiudi l'eseguibile e togli le istanze sulle classi puoi soprascrivere.
Ho in mente questo: sviluppare il programmino a parte per l'aggiornamento, e 
integrarlo nel programma principale. Cioè il programma controlla la 
versione, e se deve aggiornarsi, "estrae" il programmino di aggiornamento e 
lo lancia. Quest'ultimo chiude il programma principale, scarica la nuova 
versione e la avvia.
Si può integrare in questo modo?
Grazie
Gian

 Si può integrare in questo modo?
Perchè non lavorare al contrario?
Invece di lanciare subito il tuo applicativo, lanci un programmillo che
verifica la versione, se obsoleta la aggiorna, e poi lancia l'applicativo
"vero"
-- 
Salutoni
Sergio
That's me in the corner
That's me in the spotlight
Losing my religion
Trying to keep up with you
And I don't know if I can do it
Oh no I've said too much
I haven't said enough
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 "vero"
Fatta così pura pura, non mi piace, perchè si introduce un ritardo 
all'avvio che potrebbe infastidire.
Noi facciamo una cosa analoga, ma diversa (bello...):
Durante l'esecuzione, il sw verifica periodicamente l'esistenza di 
eventuali aggiornamenti. Se ne appaiono, scarica i file necessari, e li 
mette in un percorso apposito.
All'avvio, ciò che parte non è l'applicativo vero e proprio, ma un 
banale launcher che, se trova dei file nel tal percorso, esegue ciò che 
trova e, solo al termine, avvia il vero eseguibile.
Ovviamente non si ha l'aggiornamento a caldo (cioè, in realtà se 
l'aggiornamento è critico l'utente viene avvisato che è pronto un 
aggiornamento e che è consigliabile chiudere e riavviare 
l'applicativo), ma di fatto i tempi sono eccezionali.
Quando poi si parla di intranet e non di internet, noi superiamo il 
problema alla fonte visto che facciamo tutto su UserControl o 
UserDocument ActiveX, inseriti in pagine htm disponibili in Lan. Ad 
ogni avvio, è IE stesso che si occupa di tutto l'aggiornamento 
eventualmente necessario, compresi anche i componenti.
Ciao
Alberto
-- 
A questo punto hanno trovato un muro,
un muro duro, molto molto duro,
che siamo noi.

 all'avvio che potrebbe infastidire.
Una bella splash form, e passa la paura :-)
L'importante è far vedere subito all'utente finale che sta succedendo
qualcosa.


 gian
se ti interessa posso darti parte del codice sorgente di un
updater/installer che ho realizzato.
esso si basa su un txt come ipotizzavi di fare tu... tuttavia č il
programma che vuoi aggiornare che periodicamente (x il mio programma viene
effettuato settimanalmente) esegue l'aggiornamento oppure č possibile
eseguire l'aggiornamento manualmente (come nel caso dell'avvio
dell'istallazione)...
l'unico problema che ha (sto cercando di risolverlo e magari qualcuno puň
darmi qualche aiuto) sta nel fatto che ha problemi a scaricare i pacchetti
se si accede a internet attraverso un proxy http (mi servirebbe un codice
che scarichi un file da internet attraverso un proxy http, con e senza
autenticazione).
Il link dell'installer (del mio player mp3) č:
http://davidef.altervista.org/mp3player/mp3playerinstaller.zip
(commenti sul programma sono graditi)
-- 


 updater/installer che ho realizzato.
SI' SI' !!!! :)
In particolare mi interesserebbe vedere come fare a mostrare l'avanzamento 
del download, perchè io scarico con URLDownloadToFile, e non mi permette di 
fare altro che "aspettare" fino a quando non ha scaricato l'intero file..... 
in pratica vorrei implementare una progress bar.
Per favore potresti mandare tutto alla mia e-mail? Occhio all'antispam......
Grazie mille
gian