Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - errore aggiornamento
Forum - C# / VB.NET - errore aggiornamento

Avatar
Master_VB (Normal User)
Pro


Messaggi: 148
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 12:30
Sabato, 29/08/2009
io ho creato con vari aiuti un aggiornamento per il mio programma con questo codice:
Codice sorgente - presumibilmente VB.NET

  1. Imports System.IO
  2. Imports System.Net
  3. Public Class aggiornamento
  4.     Dim WithEvents AGG As New WebClient
  5.     Dim WithEvents downloadagg As WebClient
  6.     Dim sourceurl = "http://servers.altervista.org/aggiornamenti_programmi/dllocxregister/aggiornamenti.txt"
  7.     Dim filedir = My.Application.Info.DirectoryPath.ToString
  8.        
  9.  
  10.     Private Sub AGG_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles AGG.DownloadFileCompleted
  11.         Dim filetext As String = IO.File.ReadAllText(My.Application.Info.DirectoryPath.ToString & "\" & "aggiornamenti.txt")
  12.         If filetext > My.Application.Info.Version.ToString Then
  13.             MsgBox("Il tuo programma non e aggiornato, ora inizierà l'aggiornamento", MsgBoxStyle.OkOnly, MsgBoxStyle.Critical)
  14.             Try
  15.                 downloadagg.DownloadFileAsync(New Uri("http://servers.altervista.org/aggiornamenti_programmi/dllocxregister/dllocxregister.exe"), ("C:\"))
  16.             Catch ex As Exception
  17.                 MessageBox.Show(ex.Message, "Errore:", MessageBoxButtons.OK, MessageBoxIcon.Error)
  18.             End Try
  19.             Label2.Text = "Aggiornamento in corso..."
  20.             Label1.Text = "Nuova versione trovata!"
  21.         Else
  22.             MsgBox("Il programma è aggiornato all'ultima versione disponibile!", MsgBoxStyle.OkOnly, MsgBoxStyle.Information)
  23.             Label1.Text = "Nessuna nuova versione trovata!"
  24.             My.Settings.agg = False
  25.         End If
  26.     End Sub
  27.  
  28.     Private Sub downloadagg_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles downloadagg.DownloadFileCompleted
  29.         Shell(My.Application.Info.DirectoryPath & "\" & "dllocxregister.exe", AppWinStyle.Hide)
  30.         End
  31.     End Sub
  32.  
  33.     Private Sub downloadagg_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles downloadagg.DownloadProgressChanged
  34.         ProgressBar1.Value = e.ProgressPercentage
  35.     End Sub
  36.     Private Sub aggiornamento_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  37.         ProgressBar1.Minimum = 0
  38.         ProgressBar1.Maximum = 100
  39.         Try
  40.             AGG.DownloadFileAsync(New Uri(sourceurl), (filedir))
  41.         Catch ex As Exception
  42.             MessageBox.Show(ex.Message, "Aggiornamento Fallito:", MessageBoxButtons.OK, MessageBoxIcon.Error)
  43.             My.Settings.agg = False
  44.         End Try
  45.     End Sub
  46.  
  47.     Private Sub controllo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles controllo.Tick
  48.         If My.Settings.agg = False Then
  49.             Me.Close()
  50.             Form1.Show()
  51.         End If
  52.     End Sub
  53. End Class



però mi dà questo errore: Riferimento a un oggetto non impostato su un'istanza di oggetto
ma non riesco a capire perchè mi dà questo errore sapete aiutarmi? oppure sapete qualche altro codie per creare un updater?

PM Quote
Avatar
noitide (Normal User)
Pro


Messaggi: 107
Iscritto: 24/06/2009

Segnala al moderatore
Postato alle 12:36
Sabato, 29/08/2009
probabilmente è dovuto a questo
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim WithEvents downloadagg As WebClient


prova a dichiararlo così
Codice sorgente - presumibilmente VB.NET

  1. Dim WithEvents downloadagg as New WebClient


dovrebbe andare..;)

PM Quote
Avatar
Master_VB (Normal User)
Pro


Messaggi: 148
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 12:50
Sabato, 29/08/2009
funzionava un pò meglio però ho dovuto fare degli aggiustamenti allora in questa stringa che ho cambiato cioè nella form load dell'aggiornamento ho questa stringa:
Codice sorgente - presumibilmente Plain Text

  1. AGG.DownloadFileAsync(New Uri("http://servers.altervista.org/aggiornamenti_programmi/dllocxregister/aggiornamenti.txt"), ("C:\"))



Non scarica il file nella directory dove dovrebbe scaricare il file non c'è? come mai?

Ultima modifica effettuata da Master_VB il 29/08/2009 alle 13:28
PM Quote
Avatar
noitide (Normal User)
Pro


Messaggi: 107
Iscritto: 24/06/2009

Segnala al moderatore
Postato alle 13:45
Sabato, 29/08/2009
Codice sorgente - presumibilmente VB.NET

  1. Dim down As New WebClient
  2. down.Credentials = New NetworkCredential("USERNAME", "PASSWORD")
  3. down.DownloadFile("ftp://servers.altervista.org/aggiornamenti_programmi/dllocxregister/aggiornamenti.txt", "C:\aggiornamenti.txt")


io uso questa sintassi x scaricare un file.. allora gli errori nel tuo codice erano più di uno, infatti non dichiaravi la username e la password x accedere al server, poi usavi http invece ke ftp x scaricare il file e infine quando avevi scritto "C:\" e basta è errato, infatti devi specificare anke il nome del file di destinazione, io ti ho messo x comodità sempre lo stesso, ma tu al posto ke "C:\aggiornamenti.txt" puoi scriverci il nome ke vuoi..:k:

Ultima modifica effettuata da noitide il 29/08/2009 alle 15:17
PM Quote
Avatar
Master_VB (Normal User)
Pro


Messaggi: 148
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 14:23
Sabato, 29/08/2009
si ora funziona però ci sono problemi su problemi UFF:(. sto facendo un updater mi dà l'errore di istanza d'oggetto ecc...adesso vedo poi posterò il problema

PM Quote