ATUALIZAÇÃO DE SISTEMA

 Tópico anterior Próximo tópico Novo tópico

ATUALIZAÇÃO DE SISTEMA

C#

 Compartilhe  Compartilhe  Compartilhe
#480872 - 15/04/2018 10:46:33

JORGESALES
CEARA
Cadast. em:Maio/2015


Última edição em 15/04/2018 10:47:46 por JORGESALES

Olá a todos, recentemente solicitei ajuda para criar um atualizador dinâmico
e o amigo Álvaro forneceu um código que ajudou um pouco mas que por algum motivo
ele não funciona, a verdade é que mesmo se excluir o arquivo manualmente ele
baixa sempre uma versão anterior não atualizando o sistema, fiz vários testes e o
resultado infelizmente não é satisfatório, sendo assim solicito a ajuda de vocês para
me ajudar na criação de um sistema que faça a mesma coisa porém em C#, minha ideia
é usa-lo apenas para verificar se existe atualização e caso contrário ele executa o sistema
em VB6 mesmo (até fazer  a migração completa)

Eis o texto que postei no tópico anterior:

Citação:
Olá a todos, gostaria da ajuda de vocês para fazer uma atualização de sistema mais
profissional, atualmente tenho um banco de dados online onde mudo um campo de
uma determinada tabela para informar ao usuário que existe uma atualização de sistema,
até aí tudo bem, após ser informado o usuário é questionado se deseja baixar a nova versão,
o problema está aí, ele faz o download mas o usuário precisa ir até a pasta onde o arquivo
foi baixado e fazer a instalação manualmente.
Será que algum de vocês teria um artigo, código fonte ou qualquer coisa que me ajude a criar
um sistema de atualização automática, tipo a do Notpad ++ (quem usa sabe que ele vive lançando
novas versões e instalam automaticamente).  


Link do tópico Clique Aqui.

Mais uma vez agradeço a todos desde já.


______________________________________
Aos 52 anos descobri a magia da programação.
Obrigado a todos que sempre me ajudam.
Tudo começou aqui: Curso Excel VBA


#480875 - 15/04/2018 17:45:51

NICKOSOFT
SANTO ANDRE
Cadast. em:Maio/2009


  
                'atualizacao
                Try
                    Dim URI As String
                    URI = "http://endereco.html" 'arquivo com uma linha q contem a versao do servidor http sem ponto 1005
                    'conferir se o arquivo existe, se existir segue os passos da atualizacao, senao inicia o programa sem atualizacao

                    Dim wr As HttpWebRequest = CType(WebRequest.Create(URI.ToString), HttpWebRequest)
                    Dim ws As HttpWebResponse = CType(wr.GetResponse(), HttpWebResponse)
                    Dim str As Stream = ws.GetResponseStream()
                    Dim inBuf(100000) As Byte
                    Dim bytesToRead As Integer = CInt(inBuf.Length)
                    Dim bytesRead As Integer = 0
                    While bytesToRead > 0
                        Dim n As Integer = str.Read(inBuf, bytesRead, bytesToRead)
                        If n = 0 Then
                            Exit While
                        End If
                        bytesRead += n
                        bytesToRead -= n
                    End While
                    Dim fstr As New FileStream(Application.StartupPath & "\versao.txt", FileMode.OpenOrCreate, FileAccess.Write)
                    fstr.Write(inBuf, 0, bytesRead)
                    str.Close()
                    fstr.Close()
                    Dim sr As StreamReader = New System.IO.StreamReader(Application.StartupPath & "\versao.txt")
                    Dim leitura As String = sr.ReadToEnd.Substring(0, 4)
                    If IsNumeric(leitura) Then
                        'é numero no arquivo
                        Dim version As Integer = CInt(leitura.Substring(0, 4))
                        sr.Close()
                        File.Delete(Application.StartupPath & "\versao.txt")

                        Dim fvi As System.Diagnostics.FileVersionInfo
                        fvi = System.Diagnostics.FileVersionInfo.GetVersionInfo(Application.StartupPath & "\Seibo.exe")

                        If version > CInt(fvi.FileVersion.Replace(".", "")) Then
                            'qnd executavel
                            Dim process As New Process()
                            process.StartInfo.FileName = Application.StartupPath & "\Atualizacao.exe"
                            process.Start()
                        End If
                        Timer1.Enabled = True
                    Else
                        'nao é numero, sem atualizacao
                        sr.Close()
                        File.Delete(Application.StartupPath & "\versao.txt")
                        Timer1.Enabled = True
                    End If
                Catch ex As Exception
                    MessageBox.Show("Não foi possivel contato com a internet, verifique sua conexão")
                    End
                End Try
                'fim atualizacao


esta em vb.net
o arquivo txt hospedado tem apenas o numero da versao no servidor
compara com a versao do executavel em execucao, se hospedado for maior, significa versao mais nova, entao dispara um executavel q baixa de fato o executavel da hospedagem e substitui pelo executavel q foi finalizado inicialmente....
nao deve ser a melhor forma de fazer, mas funciona




#480878 - 15/04/2018 22:40:24

JORGESALES
CEARA
Cadast. em:Maio/2015


Nick, obrigado pela ajuda mas não consegui adaptar esse código para C#
um vez que não conheço muito dessa linguagem, mas vou ver se alguém
mais pode ajudar....

______________________________________
Aos 52 anos descobri a magia da programação.
Obrigado a todos que sempre me ajudam.
Tudo começou aqui: Curso Excel VBA


 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário