Array
(
)

Help! Atualizar Sistema .exe

Lucas Rocha
|
MVP
    19 mar 2015

Bom galera eai blz? fiz uma rotina boa pra baixar atualizações automáticas do sistema e funciona, só que o problema está, que eu subi via FTP um arquivo agora, e tentei manualmente tambem pelo host mais nao deu certo [S7][S7].. ele baixa o .zip e descompacta tudo certo, só que o .exe vem com data de modificação do dia 16/03/2015
sendo que o .zip que eu estou subindo vai com a data de modificação de hoje dia 19/03/2015, só que ele baixa esse 16/03/2015 e só tenho esse arquivo no host ..
Meu host é pago não é gratuito é adquirido pela SmarterAsp.Net, e meu sistema é em VB.Net
Segue abaixo o código fonte do Atualizador que eu fiz.. tirei algumas informações pra ** pq são meus dados e o proxy está correto:
#Código

  Imports System.ComponentModel
Imports DevExpress.LookAndFeel
Imports DevExpress.UserSkins
Imports System.Threading
Imports Microsoft.VisualBasic
Imports System.Runtime.InteropServices
Imports System.IO
Imports System.Net
Imports System.IO.Compression

Partial Public Class frmUpdate


    Inherits DevExpress.XtraEditors.XtraForm
    Private WithEvents webClient As New Net.WebClient
    Public Event DownloadFileCompleted As AsyncCompletedEventHandler
    Dim handler As AsyncCompletedEventHandler
    <BrowsableAttribute(False)> Public Event Closing As CancelEventHandler
    Dim outputZip As String = "C:\SISTEMA\LabSphere.zip"
    Dim inputZip As String = "C:\SISTEMA\LabSphere.zip"
    Dim inputFolder As String = "C:\SISTEMA"
    Dim outputFolder As String = "C:\SISTEMA"
    Dim shObj As Object = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"))
    Dim Status As Boolean = False

    Shared Sub New()
        DevExpress.UserSkins.BonusSkins.Register()
        DevExpress.Skins.SkinManager.EnableFormSkins()
    End Sub
    Public Sub New()

        InitializeComponent()
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        DevExpress.Skins.SkinManager.EnableFormSkins()
        UserLookAndFeel.Default.SetSkinStyle("Lilian")

        btnAtualizar.PerformClick()
        SimpleButton1.Enabled = False

    End Sub

    Private Sub Form1_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing

        If Status = False Then
            MessageBox.Show("Atenção a Atualização não foi instalada! Favor instalar a atualização", "Aviso Importante", MessageBoxButtons.OK, MessageBoxIcon.Information)
            e.Cancel = True
        Else

        End If

    End Sub

    Private Sub btnAtualizar_Click(sender As Object, e As EventArgs) Handles btnAtualizar.Click

        For Each prog As Process In Process.GetProcesses
            If prog.ProcessName = "LabSphere" Then
                prog.Kill()
            End If
        Next

        If File.Exists("C:\SISTEMA\LabSphere.exe") Then
            File.Delete("C:\SISTEMA\LabSphere.exe")
        End If

        Thread.Sleep(2000)
 
        Dim webClient As New Net.WebClient
        Dim site As String = "http://*****.com.br/Updater/"
        AddHandler webClient.DownloadProgressChanged, AddressOf webClient_ProgressChanged
        AddHandler webClient.DownloadFileCompleted, handler

        Dim Proxy As New Net.WebProxy
        Dim LoginProxy As New Net.NetworkCredential
        With LoginProxy
            .UserName = "logmein"
            .Password = "logmein"
        End With
        With Proxy
            .Address = New Uri("http://10.0.0.1:3128")
            .Credentials = LoginProxy
            .BypassProxyOnLocal = True
        End With

        webClient.Proxy = Proxy

        Dim arq As String, dest As String
        Dim wdown As String
        arq = "LabSphere.zip"
        dest = "C:\Sistema\LabSphere.zip"
        Try
            wdown = site & arq

              webClient.DownloadFileAsync(New System.Uri(wdown), dest)
  
        Catch ex As Exception
            MsgBox(ex.ToString)
   
        End Try


    End Sub


    Private Sub webClient_ProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles webClient.DownloadProgressChanged
        Dim MB_Recebidos As Double, MB_Total As Double

        MB_Recebidos = (e.BytesReceived / 1024 ^ 2)
        MB_Total = (e.TotalBytesToReceive / 1024 ^ 2)

        progDownload.Maximum = e.TotalBytesToReceive
        progDownload.Value = e.BytesReceived
        lblPorcentagem.Text = e.ProgressPercentage & "%"
        lblBytes.Text = Math.Round(MB_Recebidos, 2)
        lblTotal.Text = Math.Round(MB_Total, 2)


        Application.DoEvents()
        If Val(lblBytes.Text) = Val(lblTotal.Text) Then
            lblStatus.Text = "Sistema foi Atualizado com Sucesso"
            SimpleButton1.Enabled = True
        End If
         
    End Sub

    Sub UnZip()

        'Create directory in which you will unzip your items.
        IO.Directory.CreateDirectory(outputFolder)

        'Declare the folder where the items will be extracted.
        Dim output As Object = shObj.NameSpace((outputFolder))

        'Declare the input zip file.
        Dim input As Object = shObj.NameSpace((inputZip))

        'Extract the items from the zip file.
        output.CopyHere((input.Items), 4)

    End Sub
     
 
  
    Private Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles SimpleButton1.Click
        If File.Exists("C:\SISTEMA\LabSphere.exe") Then
            File.Delete("C:\SISTEMA\LabSphere.exe")
        End If

        UnZip()
        Status = True
        MessageBox.Show("A Atualização do Sistema foi instalada com êxito", "Aviso do Sistema", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    End Sub
End Class