EASxD 0 Denunciar post Postado Setembro 11, 2009 Olá eu estou tentando fazer um form de auto update para meu projeto para atualizar seus componentes como dlls e etc... onde esse form faz a conexão com o servidor e verifica a lista de arquivos a serem baixados e a versão dessa lista e versão de cada arquivo Tipo um MD5 por exemplo: 1 user.dll a394686c96526f940262ab275b020259 pasta\database.dll c79d89578a37b549158104f4197e824e pasta\database.mdb 3917165ee67edd231f2b44f3019053ba mais ou menos assim a lista.. mas gostaria de ver algum exemplo, Tentei fazer sozinho usando My.Computer.Network.DownloadFile e usando o Net.WebClient.DownloadFileAsync mas nao dei conta tentei fazer tbm sem usar lista colocando um link direto de uma executavel só criou um arquivo com 0bytes e nem baixou fiz um teste aqui assim não baixou My.Computer.Network.DownloadFile("http://download.piriform.com/ccsetup223.exe", "temp\ccsetup223.exe", Nothing, Nothing, False, 100, True)e assim baixou My.Computer.Network.DownloadFile("http://download.piriform.com/ccsetup223.exe", "temp\ccsetup223.exe) Agora alguem poderia me da um exemplo como fazer por lista ou algo do tipo? eu vou continuar tentando aqui! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Setembro 12, 2009 Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET > Windows Applications Compartilhar este post Link para o post Compartilhar em outros sites
scorpio 7 Denunciar post Postado Setembro 13, 2009 Por que não deu certo isso daí? Compartilhar este post Link para o post Compartilhar em outros sites
EASxD 0 Denunciar post Postado Setembro 13, 2009 simplismente só criou um arquivo com 0bytes e o nome tentei usar no load do form e em button eu to com algumas open source aqui que tem mais ou menos o sistema que eu quero mas tipo ele baixa de uma lista mas da pra alterar os arquivos no cliente no caso oque eu procuro é um auto update que puxa os arquivos listados no servidor e que verifique se os arquivos do cliente foram alterados aquele metodo ali encima que eu mostrei é só pra baixar a lista mas já dei um jeito pra baixar a lista e no pc deve ficar uma lista com a versão dos arquivos para o proximo update tbm né e no cliente vai ficar só um arquivo com a versão da lista agora deu pra entender ? :wacko: Compartilhar este post Link para o post Compartilhar em outros sites
nexus 0 Denunciar post Postado Setembro 26, 2009 olha cara, eu fiz algo parecido, ae fiz uma sub para baixar os arquivos. Private Sub baixa(ByVal arq As String, ByVal dest As String) Dim site As String = "http://ip.ou.site/diretorio/" Dim webClient As New WebClient() Try webClient.DownloadFile(site & arq, dest) Catch ex As Exception If MsgBox("Ocorreu um problema durante a tentativa de atualização. " & vbCrLf & "Deseja ver detalhes do erro?", MsgBoxStyle.YesNo + MsgBoxStyle.Critical) = MsgBoxResult.Yes Then MsgBox(arq & vbCrLf & dest & vbCrLf & vbCrLf & "Mensagem de erro: " & vbCrLf & ex.ToString) End If End Try End Sub pelo menos aki funciona que eh uma maravilha cara.. boa sorte ae Compartilhar este post Link para o post Compartilhar em outros sites
EASxD 0 Denunciar post Postado Setembro 26, 2009 Obrigado nexus por tentar me ajudar eu testei desse jeito ai funcionou ele baixa tudo que tem no diretorio do servidor de update é mais ou menos isso que eu quero mas tipo eu gostaria que ele se conecta a um arquivo que contem a lista dos arquivos o md5 e a versão da lista ai ele faz a verificação no md5 dos arquivos citado na lista do cliente a versão da lista caso estejam diferentes ele atualiza... seria possivel fazer isso utilizando webclient? acho que é o melhor jeito que consigo explicar :S Compartilhar este post Link para o post Compartilhar em outros sites
nexus 0 Denunciar post Postado Setembro 26, 2009 olha, eu entendi o que você quiz dizer. o modo de usar essa funcao seria assim: baixa("aplicativo.exe","c:\sistema\aplicativo.exe") ae ele iria copiar somente o arquivo aplicativo.exe e salva-lo na pasta sistema... para fazer isso que você quer você tem varias opcoes 1) Salvar esses MD5 sums num banco de dados, conectar a esse bd pela net, dar um select nos valores que deseja e tomar suas atitudes. (pode ser meio lento dependendo do link de internet) 2) Salvar os sums em um arquivo de texto do tipo INI (existem algumas classes prontas na net para acessar arquivos ini que facilitam muito o trampo) no servidor, e entao usar a funcao Baixa para efetuar download deste arquivo de texto, ae você le os valores e toma suas decisoes (de inicio parece ser um pouco mais complicado, porem nos testes que eu fiz foi o metodo mais rapido) 3) no servidor você pode criar paginas web com os sums, baixar essas paginas com um webclient, e tratar o texto para pegar os valores e tomar suas decisoes (nunca fiz dessa maneira, mas acredito ser mais rapido e facil do que com arquivos INI) usando uma destas você conseguira o que deseja. boa sorte Compartilhar este post Link para o post Compartilhar em outros sites
EASxD 0 Denunciar post Postado Setembro 26, 2009 vlw... vou pesquisar sobre esses metodos menos de ler aquivos ini eu ja tinha aqui o problema é que eu procuro e nao acho :S mas vou tentar do jeito que você falou ai Compartilhar este post Link para o post Compartilhar em outros sites
nexus 0 Denunciar post Postado Setembro 27, 2009 entao faz pelo de INI.... funciona bem, eu uso desta maneira eheheh. no meu caso, no arquivo ini eu tenho uma chave Versao=XXX.. se a versao do ini for maior do que a versao local entao eu baixo o executavel atualizado e substituo o original (para isso tenho que executar em um programa separado...tipo quando executa o form de verificar atualizacao de dentro do meu sistema, ele faz todos esses downloads do INI e se necessario dos aplicativos novos, ae entao em disparo um outro executavel e fecho o programa em execucao, desta maneira no outro programa eu apago o arquivo antigo e renomeio o novo e executo o novo tudo muito rapido em menos de 2 segundos e ja era..) flw boa sorte Compartilhar este post Link para o post Compartilhar em outros sites
EASxD 0 Denunciar post Postado Setembro 27, 2009 eu vi varios sistemas de update desse jeito na internet.. Achei aqui algo pra verificar o MD5 Do Arquivo agora é só adaptar baixei open source ele compara o MD5 dos arquivos citados na textbox http://www.macoratti.net/comparaArquivos.zip o problema é que eu só sei um jeito de dar readini é o unico jeito que eu tenho aqui... depois de baixar o ini ele da print la nessa linha ai aqui e o sAtualizacaoINI fica valendo atualizacao.txt sAtualizacaoINI = ReadINI(My.Application.Info.DirectoryPath & "\Informacoes.ini", "Informacoes", "Atualizacao") no caso ele seleciona oque ta no informacoes.ini e tem essa linha la no ini [informacoes] atualizacao = atualizacao.txt atualizacao.txt é bem assim dentro do arquivo: test.txt, A1, http://127.0.0.1:8090/test.txt, 1, 1 e é utilizado um metodo pra ler cada parte dessa linha ai separada por "," sabe me dar um exemplo pra dar readini em um mais ou menos assim ou algo parecido? [Version] 0.0.0.0 [MD5Checksum] 1, b5c1a593817574602dbbb6f51820aac0 [FilesToDownload] 1, \file1.exe vou procurar aqui outros metodos... pra min poder adaptar o MD5 pra ler INI e comparar Compartilhar este post Link para o post Compartilhar em outros sites
nexus 0 Denunciar post Postado Setembro 27, 2009 Claro, você esta tornando algo simples em algo complicado ehehe bom, vamos la: 'Arquivo Informacoes.Ini' [Version] Version=0.0.0.0 [MD5Checksum] App1=b5c1a593817574602dbbb6f51820aac0 App2=b5c1a593817574602dbbb6f51820aac0 App3=b5c1a593817574602dbbb6f51820aac0 App4=b5c1a593817574602dbbb6f51820aac0 [FilesToDownload] App1=\file1.exe App2=\file2.exe App3=\file3.exe App4=\file4.exe ok, ae em um unico arquivo você contem todas as informacoes necessarias. para ler essas informacoes: Dim Versao, MD1, MD2, MD3, MD4, Dir1, Dir2, Dir3, Dir4, Path As String Path = My.Application.Info.DirectoryPath & "\Informacoes.ini" Versao = ReadINI(Path, "Version", "Version") MD1 = ReadINI(Path, "MD5Checksum", "App1") MD2 = ReadINI(Path, "MD5Checksum", "App2") MD3 = ReadINI(Path, "MD5Checksum", "App3") MD4 = ReadINI(Path, "MD5Checksum", "App4") Dir1 = ReadINI(Path, "FilesToDownload", "App1") Dir2 = ReadINI(Path, "FilesToDownload", "App2") Dir3 = ReadINI(Path, "FilesToDownload", "App3") Dir4 = ReadINI(Path, "FilesToDownload", "App4") ae você ve a versao e o checksum e se precisar Baixa(Dir1,"C:\Seu Sistema" & Dir1) boa sorte Compartilhar este post Link para o post Compartilhar em outros sites
EASxD 0 Denunciar post Postado Setembro 27, 2009 vlww quebrou meu galho no ReadINI :D mas tava na cara é eu que sou burro >.< mais tarde posto resultado com isso vai ficar muito mais facil se não fosse você tambem hêim ^_^ mas tem um pequeno problema caso eu adicione uma linha a mais no informacoes.ini eu vou ter que atualizar a aplicação de update :S eu queria um sistema que nao precise >.< problema resolvido lembrei de uma rotina que da o valor 0 e adiciona 1 a cada vez que é executado :D problema resolvido... :D Compartilhar este post Link para o post Compartilhar em outros sites
nexus 0 Denunciar post Postado Setembro 28, 2009 que bom que pude ajudar :) ja precisei muito de ajuda tambem, e agora que posso ajudar os outros isso me recompensa. fico feliz! Compartilhar este post Link para o post Compartilhar em outros sites