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 2010] updater
Forum - C# / VB.NET - [vb.net 2010] updater

Avatar
Reloader90 (Normal User)
Rookie


Messaggi: 40
Iscritto: 15/07/2011

Segnala al moderatore
Postato alle 18:40
Venerdì, 08/06/2012
salve vorrei creare un updater abbastanza semplice...
deve confrontare la versione e se c'è nè una nuova scarica i files della nuova versione... questo updater dovrà anche avere una progress bar...

aiuto! :hail:


Andrò a fare informatica al DISI come università!

Programmo: vb6,vb.net,pascal,php,flash,java,js,android,c++
PM Quote
Avatar
GN (Member)
Guru


Messaggi: 770
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 21:50
Venerdì, 08/06/2012
Uhm, secondo me devi costruire un piccolissimo servizio web a cui appoggiarti. Ti basta fare un file accessibile via http che contenga (o stampi, se preferisci farlo dinamicamente) il numero dell'ultima versione. Dal tuo programma, quando devi fare gli aggiornamenti fai una webrequest a questo file (con uno di questi metodi http://totemslair.org/guide/viewchapter.php?guida=vb&id=81) e confronti il numero con My.Application.Info.Version; se è maggiore, scarichi il file con uno degli stessi spiegati nel link di prima.


PM Quote
Avatar
Reloader90 (Normal User)
Rookie


Messaggi: 40
Iscritto: 15/07/2011

Segnala al moderatore
Postato alle 9:07
Sabato, 09/06/2012
uhm... ma io non ho solo un file... ho più files in delle cartelle...
la soluzione potrebbe essere scaricare uno zip e farlo decomprimere ma non sò come si fà... oppure far leggere un files.txt che contiene i file da scaricare....

ekko ho fatto una cosa del genere ma dovrei dirgli che se nn esiste la cartella locale che corrisponde a quella remota la deve creare (cm faccio?)
Codice sorgente - presumibilmente VB.NET

  1. Imports System.IO
  2.  
  3. Public Class Form1
  4.  
  5.     Public apdir As String
  6.     Public downloadfiles As List(Of String) = New List(Of String)
  7.     Public curver As String
  8.  
  9.     Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  10.         apdir = System.Environment.CurrentDirectory
  11.         WebClient1.DownloadFileAsync(New Uri("http://aldrigo.sourceforge.net/aldrigoscraft/version.txt"), apdir & "\version-new.txt")
  12.     End Sub
  13.  
  14.     'scarica la versione
  15.     Private Sub WebClient1_DownloadFileCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles WebClient1.DownloadFileCompleted
  16.         Dim Read As String = My.Computer.FileSystem.ReadAllText(apdir & "\version.txt")
  17.         Dim rnew As String = My.Computer.FileSystem.ReadAllText(apdir & "\version-new.txt")
  18.  
  19.         If Not Read = rnew Then
  20.             'If it reads blank, then the internet connection is faulty.
  21.             If Read = "" Then
  22.                 MsgBox("ERROR: Please check your internet connection or try later.", MsgBoxStyle.Critical, "ERROR")
  23.             Else
  24.                 Label2.Text = "Update ready to download!"
  25.                 Button1.Enabled = True
  26.                 Label2.ForeColor = Color.Green
  27.             End If
  28.         Else
  29.             Button1.Enabled = False
  30.             Button1.Text = "Up to date."
  31.             Label2.Text = "Up to date."
  32.             Label2.ForeColor = Color.Green
  33.         End If
  34.     End Sub
  35.  
  36.     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  37.         MsgBox("Downloading new update!")
  38.         WebClient2.DownloadFileAsync(New Uri("http://aldrigo.sourceforge.net/aldrigoscraft/link.txt"), apdir & "\link.txt")
  39.     End Sub
  40.  
  41.     'scarica i links
  42.     Private Sub WebClient2_DownloadFileCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles WebClient2.DownloadFileCompleted
  43.         Dim sr As StreamReader = New StreamReader(apdir & "\link.txt")
  44.         Dim line As String
  45.         ' Read and display the lines from the file until the end
  46.         ' of the file is reached.
  47.         Do
  48.             line = sr.ReadLine()
  49.             'li aggiungo alla lista delle cose da scaricare
  50.             If Not line Is Nothing Then downloadfiles.Add(New String(line))
  51.         Loop Until line Is Nothing
  52.         sr.Close()
  53.  
  54.         Dim i As Integer
  55.         For i = 0 To downloadfiles.Count - 1
  56.             MsgBox(downloadfiles.Item(i))
  57.         Next
  58.  
  59.         'Button1.Enabled = False
  60.         'Button1.Text = "Update already downloaded."
  61.         'Label2.Text = "Update already downloaded."
  62.         'Label2.ForeColor = Color.Red
  63.     End Sub
  64. End Class


Ultima modifica effettuata da Reloader90 il 09/06/2012 alle 11:55


Andrò a fare informatica al DISI come università!

Programmo: vb6,vb.net,pascal,php,flash,java,js,android,c++
PM Quote
Avatar
GN (Member)
Guru


Messaggi: 770
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 21:37
Sabato, 09/06/2012
Uhm, se non hai dati da conservare la cosa più semplice è sovrascrivere tutto. Per estrarre lo zip puoi usare librerie come questa http://dotnetzip.codeplex.com.


PM Quote
Avatar
Reloader90 (Normal User)
Rookie


Messaggi: 40
Iscritto: 15/07/2011

Segnala al moderatore
Postato alle 22:41
Sabato, 09/06/2012
forse è meglio fare file per file e creare le cartelle in locale se nn esistono... ci provo...
cmq secondo te è valido quello che ho scritto sopra? per ora scarica e confronta la versione e legge le cose da scaricare...

Ultima modifica effettuata da Reloader90 il 09/06/2012 alle 22:42


Andrò a fare informatica al DISI come università!

Programmo: vb6,vb.net,pascal,php,flash,java,js,android,c++
PM Quote
Avatar
GN (Member)
Guru


Messaggi: 770
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 21:33
Domenica, 10/06/2012
Testo quotato

Postato originariamente da Reloader90:

forse è meglio fare file per file e creare le cartelle in locale se nn esistono... ci provo...
cmq secondo te è valido quello che ho scritto sopra? per ora scarica e confronta la versione e legge le cose da scaricare...


Secondo me anche se non vuoi sovrascrivere tutto uno zip è più comodo, se poi lo fai autoestraente basta lanciarlo con Process.Start(percorso) senza dover usare nessuna libreria, comunque se vuoi fare diversamente l'idea del file con i link mi sembra la migliore (anche perchè non ne ho altre, lol)


PM Quote
Avatar
Reloader90 (Normal User)
Rookie


Messaggi: 40
Iscritto: 15/07/2011

Segnala al moderatore
Postato alle 10:32
Lunedì, 11/06/2012
mah in efetti... forse lo zip che si estrae da solo e sovrascrive è più semplice no?
ehm come faccio uno zip auto estraente?


Andrò a fare informatica al DISI come università!

Programmo: vb6,vb.net,pascal,php,flash,java,js,android,c++
PM Quote
Avatar
ampeg (Normal User)
Pro


Messaggi: 124
Iscritto: 21/04/2011

Segnala al moderatore
Postato alle 12:01
Lunedì, 11/06/2012
Testo quotato

Postato originariamente da Reloader90:

mah in efetti... forse lo zip che si estrae da solo e sovrascrive è più semplice no?
ehm come faccio uno zip auto estraente?




http://windows.digital.it/creare-degli-archivi-compressi-a ...

poi per l'estrazione senza visualizzare alcuna finestra di dialogo lanci l'eseguibile autoestraente con la command-line seguente

nomefile.exe /t: percorso_di_destinazione

altri parametri della riga di comando li trovi qua

http://support.microsoft.com/kb/197147



PM Quote