Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    68

    [VB6] autoupdate per aplicazione

    Io sto cercando di fare un updater per un progetto che sto seguendo. In pratica non chiedo altro che scaricare dei file da una cartella remota se diversi da quelli in locale, ovviamente ottimizando il download.
    un esempio
    PC - folder principale
    file1.txt
    file2.txt
    file3.txt
    folder1\file4.txt
    folder1\file5.txt
    folder2\file6.txt
    folder2\folder3\file7.txt
    etc..

    CARTELLA REMOTA - folder principale
    file0.txt
    file1.txt
    file2.txt
    file3.txt
    folder1\file4.txt
    folder1\file5.txt
    folder2\file6.txt
    folder2\folder3\file7.txt

    -----------
    l'idea è più o meno questa:
    un file php sul server mi da l'elenco dei file della folder compreso di dimensione e file_hash
    l'updater prendendo l'elenco di file dal server prende e controlla l'esistenza, la dimensione e il hash del file in locale e se qualcosa non quadra lo marca da scaricare.
    una volta che ho l'elenco dei file da scaricare, prendo e lo mando ad un altro php che prende i file richiesti, li comprime in rar e mi li da in output. l'updater scarica il rar, lo scomprime e lo sovrascrive eventualmente ai file già esistenti.
    -------------
    sto cercando di capire come superare il fatto che l'aplicativo sembri bloccato durante il calcolo dei hash in locale se il file è grosso oppure durante l'estrazione del rar

    e come realizzare una sostituzione dei file aperte, appena possibile?

    grazie
    grazie anticipatamente

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Sinceramente non mi pare la strada corretta.

    1) se i tuoi file da aggiornare sono nella cartella Programmi e l'utente non ha diritti di installazione, non funziona

    2) stessa cosa vale nel caso il S.O. sia Vista, Seven o futuri.

    3) l'unico modo (ammesso che l'utente abbia diritti di installazione) è creare un SETUP di aggiornamento.

    Io faccio così:
    1) creo un setup con InnoSetup che mi installi e/o aggiorni quello che mi serve.
    2) le mia applicazioni hanno a che fare con la gestione dei dati, se devo modificare il database creo anche un programma che me lo aggiorni e che sarà eseguito all'interno del SETUP
    3) sul server remoto tengo un file di testo con il numero di versione.
    4) l'updater scarica del server remoto solo questo file, e confronta le versioni.
    5) se occorre propone all'utente di scaricare l'aggiornamento (es. SETUPnumeroVersione.EXE), poi chiede all'utente se vuole installarlo.
    6) se l'utente risponde sì, avvio il setup e saranno aggiornati tutti i file.
    7) dato che NON è possibile aggiornare file aperti, quindi l'installer verifica se l'applicazione
    è in esecuzione, nel qual cosa non procede fino a che l'utente non la chiude. Questo viene fatto tramite un Mutex.

    Sull'area VB Classic di Planet Source Code trovi tantissimi esempi, ma nessuno mi ha soddisfatto (ecco perchè me lo sono fatto in proprio) perchè tutti vogliono scaricare i file separatamente e copiarli nella cartella del programma.
    Questo, con le policy sulla sicurezza dei nuovi S.O., non funziona più.

    L'unico modo è creare un SETUP di aggiornamento.

    Puoi anche dare un'occhiata a CIS - Cyber Installer Studio (vai di Google) che include già un modulo da installare con la tua applicazione per provvede a fare tutto lui.
    Promette bene, ma non ho ancora avuto modo di testarlo (problemi di tempo), ma CIS è davvero un'ottimo Installer.




  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    68
    grazie per la tua risposta
    ma creare un setup di aggiornamento non ha senso per me perché deve comunque andare sul sito e scaricarlo. a questo punto gli faccio scaricare un rar con i file nuovi e il risultato è lo stesso.

    per quanto diguarda il blocco qualche idea?

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da babidi
    grazie per la tua risposta
    ma creare un setup di aggiornamento non ha senso per me perché deve comunque andare sul sito e scaricarlo. a questo punto gli faccio scaricare un rar con i file nuovi e il risultato è lo stesso.
    Da questa affermazione, vedo che proprio non hai capito la questione delle policy.

    Originariamente inviato da babidi
    per quanto diguarda il blocco qualche idea?
    Quale blocco?

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    68
    Originariamente inviato da gibra
    Da questa affermazione, vedo che proprio non hai capito la questione delle policy.
    la soluzione da te suggerita prevede che egli scarichi un file di aggiornamento dal sito e lo esegua
    quello che ti ho risposto è che tanto vale che già va sul sito scarica i file compressi è li estrae nella cartella dove ha installato il programm. lo fa manualmente l'utente come il download e l'esecuzione del setup

    Originariamente inviato da gibra
    Quale blocco?
    il tempo che ci mette a calcolare un hash di un file lungo o l'estrazione del rar, l'aplicazione è bloccata fino al completamento dell'operazione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.