Esse projeto é bem simples, mas muito útil.
Após pesquisar bastante na internet não achei nada parecido para fazer uma atualização de meus sistemas em dotNet sem ser pelo ClickOnce, então acabei criando uma DLL que após ser referênciada em seu projeto você tem a possibilidade de fazer este processo de maneira bem fácil, rápida, transparente e automática.
Segue abaixo um diagrama de atividades bem básico do processo que é feito na classe PRUpdater:
Segue abaixo um código simples de como usar:
1 – Adicione a referência em seu projeto para o arquivo PRUpdater.dll
2 – Crie um objeto PRUpdater e faça a chamada ao método atualizar. Exemplo:
PRUpdater.Updater up;
up = new PRUpdater.Updater(1.0, “http://www.seudominio.com.br/updater.xml”);
up.atualizar();
Obs: Essa chamada pode ficar dentro de um timer para que a cada XX minutos seja verificado se existe atualização.
A estrutura do arquivo updater.xml:
1 – O arquivo na verdade pode ter qualquer nome, é só especificar no constructor o nome correto.
<?xml version=”1.0″ encoding=”utf-8″?>
<prupdater>
<versao>2.5</versao>
<metodo>auto</metodo>
<mensagem>Parabéns, software atualizado.</mensagem>
<arquivos>
<arquivo destino=”\TestePRUpdater.exe” backup=”1″>http://www.prsolucoes.com/tmanager/TestePRUpdaterV5.exe</arquivo>
</arquivos>
</prupdater>
Como podem ver a estrutura é bem simples, vou explicar os elementos do xml:
versao - Define o número da versão atual do servidor onde está o xml. Exemplo, se seu software está na versão 1.0 e você gerou uma atualização para a versão 2.5, então preencha este elemento com a versão nova: 2.5
metodo - Define como a atualização será feita, por enquanto só tem o método automático, então deixe por enquanto sempre preenchido como ‘auto’
mensagem - Define a mensagem que será exibida na finalização da atualização.
arquivos - Define quais arquivos serão atualizados, podendo ser quantos você desejar.
backup - Define se será feito backup antes da troca do arquivo (1=sim e 0=não).
destino - Define o caminho relativo ou absoluto para onde o arquivo será criado (para ser relativo precisa iniciar com a barra).
Obs: A pasta de destino tem umas facilidades que criei, caso o primeiro caracter da pasta destino seja a barra então o arquivo será criado apartir da mesma pasta da aplicação (caminho relativo), caso contrário será o caminho exato que estiver (caminho absoluto).
Eu coloquei junto da DLL um projeto de teste, onde tem o XML e uma aplicação básica fazendo a atualização. Não esqueça de trocar a referência no projeto, pois está apontando para a pasta do meu projeto no meu computador.
Qualquer dúvida é só comentar.
Download: