ATUALIZA?ÕES DO SOFTWARE (VERSOES)
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:
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
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
Não vejo nada que pudesse causar isso, a menos que o seu proxy esteja fazendo cache do arquivo
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.
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..
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
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