ATUALIZA?ÕES DO SOFTWARE (VERSOES)

MESTRE 19/03/2015 15:20:28
#445354
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 .. 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:

  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
OCELOT 19/03/2015 17:23:53
#445362
Resposta escolhida
Se você baixar o arquivo manualmente pelo navegador vem a versão correta?

Não vejo nada que pudesse causar isso, a menos que o seu proxy esteja fazendo cache do arquivo
NILSONTRES 19/03/2015 17:40:59
#445365
Por segurança, não consulto a modificação do exe, eu atualizo uma base de dados e altero a versão de cada cliente, pois a casos que embora tenha atualização, pode não ser todos os cliente que devam atualizar, então o sistema consulta a tabela com base no exe atual e compara as versões, se for maior, então ele baixa da pasta do cliente, eu crio uma pasta para cada cliente no ftp.
MESTRE 19/03/2015 21:31:05
#445369
Citação:

Se você baixar o arquivo manualmente pelo navegador vem a versão correta?

Não vejo nada que pudesse causar isso, a menos que o seu proxy esteja fazendo cache do arquivo



Cara testei aqui em casa, baixei e veio certo o download cara, amanha testo baixando direto do navegador na empresa.. o problema é que no caso eu zipo um .Exe de 58MB e ai, deleto o antigo e subo ele no FTP.. só que quando eu executo a rotina ele me traz um arquivo .Exe de 56MB antigo sem as alterações realizadas, não vem corrompido nem nada o download chega a 100% tudo certinho. Se por ex ele estiver fazendo cache o que eu faço??

  Por segurança, não consulto a modificação do exe, eu atualizo uma base de dados e altero a versão de cada cliente, pois a casos que embora tenha atualização, pode não ser todos os cliente que devam atualizar, então o sistema consulta a tabela com base no exe atual e compara as versões, se for maior, então ele baixa da pasta do cliente, eu crio uma pasta para cada cliente no ftp.  

Então Nilson na verdade é apenas a empresa que eu trabalho que irá ter uma filial utilizando exatamente o mesmo sistema e obrigatoriamente quando atualizar um tem que atualizar o outro..
NICKOSOFT 20/03/2015 06:26:32
#445375
Se vem o anterior, é pq esta no cache mesmo, vc precisa renovar o cache, ou limpar, tudo depende do server q gerencia pra fazer isso, e depende se vcs mesmo tem o clntrole do server pra fazer alteracoes, tem horas q é muito util, mas horas mata como nesse caso
MESTRE 20/03/2015 07:08:55
#445378
Citação:

Se vem o anterior, é pq esta no cache mesmo, vc precisa renovar o cache, ou limpar, tudo depende do server q gerencia pra fazer isso, e depende se vcs mesmo tem o clntrole do server pra fazer alteracoes, tem horas q é muito util, mas horas mata como nesse caso



é o cache mesmo porque ontem baixei na minha casa e veio a versão certa, hoje eu baixei no trabalho direto do link pelo browser e veio a versão errada..

Foi resolvido , obrigado gente!!
Tópico encerrado , respostas não são mais permitidas