biblioteca de Auto-atualização para .NET? [fechadas]
-
22-08-2019 - |
Pergunta
No Mac há um muito bom biblioteca chamada faísca que os programas podem usar para implementar a verificação / instalar a funcionalidade para atualizações automáticas.
Existe alguma coisa fora semelhante não for .NET? Ou apenas regular Win32?
Solução
ClickOnce tem suas próprias limitações de segurança (understandbly assim). Se você quer o poder e o controle de um aplicativo do Windows, em seguida, ir com o .NET < a href = "http://windowsclient.net/articles/appupdater.aspx" rel = "nofollow noreferrer"> aplicação de actualização componente . Ele funciona como um encanto e tem sido usado por Microsoft internamente para seu jogo baseado em .NET (não me lembro o nome do jogo embora).
Outras dicas
Deixe-me começar por dizer que oferecer uma solução de atualização completa que inclui:
- open source atualizador, wyUpdate , escrito em C #
- O controle livre AutomaticUpdater que você pode simplesmente adicionar aos seus aplicativos do .NET formulário
- wyBuild é usado para manchas construção e gerenciar suas versões
wyUpdate lida com todos os problemas Vista / Windows 7 UAC e todos os problemas de permissão de arquivo que inevitavelmente surgem quando você está tentando atualizar software complexo.
Dito isto, se você quer construir seu próprio atualizador aqui estão algumas dicas:
Construir seu próprio atualizador
Um bom lugar para começar é o wyUpdate C # código fonte eu mencionei acima. Você pode canibalizar-lo e usá-lo para seus próprios fins. Alguns dos algoritmos que ela contém:
- completa do Windows Vista / Windows 7 suporte UAC
- Capacidade para os usuários limitados para verificar e atualizar se eles têm credenciais
- Suporte para inernet corporativa wonky. (Se você nunca trabalhou com uma empresa este é um problema real).
- Breve extração, aplicação de patches, e instalação de arquivos.
- Suporte Registro.
- arquivos reverter & registro em erro ou cancelamento pelo usuário
- auto-update (nenhum arquivo deixado para trás)
Temos também os href="http://wyday.com/wyupdate/file-specifications.php" rel="nofollow especificações de arquivo aqui .
Atualização automática
Desde ser automática é uma exigência deixe-me dizer-lhe como fazemos com a nossa controle AutomaticUpdater .
Usamos tubos para a comunicação entre o atualizador autônomo (wyUpdate) eo controle Automatic Updater sentado na forma do seu programa nomeado. relatórios wyUpdate avançar para o Automatic Updater, eo Automatic Updater pode dizer wyUpdate para cancelar o progresso, para iniciar o download, iniciar a extração, etc.
Isso mantém o atualizador separar de sua aplicação.
Na verdade, os tubos C # código exato chamado que usamos é incluído em um artigo que eu escrevi um pouco para trás: multi-processo C # aplicativo como o Google Chrome .
ClickOnce é o meu método preferido. Ele tem algumas verrugas, mas ele vem com o Visual Studio e funciona razoavelmente bem.
ClickOnce é muito utilizada, mas você pode fazer o que eu fiz para uma grande aplicação e tente estes:
Eu consertou com a lógica um pouco e construiu o que eu achava que era uma melhor arquivo de atualização XML. Agora, quando eu preciso atualizar os clientes, eu só postar os novos arquivos EXE ou arquivos DLL e definir as versões corretas no arquivo XML público. Meu aplicativo detecta as versões mais recentes se é mais velho e se atualiza. Se você estiver fazendo isso em Windows Vista , você precisa para solicitar permissões de administrador para que os arquivos do Programa podem ser gravados (se instalar lá).
Você também pode facilmente converter isso em C # usando C # / VB.NET Converter .
Eu só fui através do processo de fazer isso e usado NetSparkle .
Ele trabalhou como anunciado por Windows Forms aplicação com um instalador MSI que substitui a versão anterior. Estou muito feliz que eu achei muito - eu estava prestes a fazer a minha própria. Eu sou a única a fazer aplicações realmente simples .NET? Principalmente tudo Olhei parecia um exagero completo.
Eu não tentei NetSparkle ainda (eu mais tarde), mas parece que é o que você está procurando.
NetSparkle é uma estrutura de atualização-e fácil de usar software para o NET desenvolvedores em Windows, Mac ou Linux. Foi inspirado pela href="http://sparkle.andymatuschak.org/" rel="nofollow"> projeto para desenvolvedores de cacau eo href="http://winsparkle.org/" rel="nofollow"> projeto (a < a href = "http://en.wikipedia.org/wiki/Windows_API" rel = "nofollow"> porta Win32 ).
WyBuild é boa alternativa faísca)
Aqui está uma solução de código aberto que eu escrevi às necessidades específicas endereço que tínhamos para WinForms e aplicativos WPF. A ideia geral é ter a maior flexibilidade, com o menor sobrecarga possível.
Assim, Integração é super-fácil, e a biblioteca faz praticamente tudo para você, incluindo operações de sincronização. Também é altamente flexível , e permite determinar quais as tarefas a executar e em que condições - você faz as regras (ou usar alguns que já estão lá). Por último, mas não menos importante é o suporte para qualquer fonte de atualização (web, BitTorrent, etc) e qualquer formato de feed -. Tudo o que não é implementado você pode apenas escrever para si mesmo
atualizações fria (que requerem uma reinicialização do aplicativo) também são suportados, e feito automaticamente, a menos "hot-swap" é especificado para a tarefa.
Esta se resume a uma DLL, a menos de 70kb de tamanho.
Mais detalhes em http : //www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/
código é em http://github.com/synhershko/NAppUpdate (licenciado sob a Apache 2.0 licença)
Estou pensando em estendê-lo mais quando eu ficar mais algum tempo, mas honestamente, você deve ser capaz de melhorá-lo rapidamente se para o que quer que atualmente não suporta.
Existe um utilitário muito legal chamado Updater . Parece que está escrito na C ou C ++ . Eu tenho sido capaz de configurar os arquivos XML e carregá-los para o servidor de produção, e então eu posso ter o Updater Run e verifique o arquivo XML para uma versão diferente e baixar uma nova atualização instalar o pacote que eu construí usando o Nullsoft Install System Scriptable (INE).
Nós investigamos um punhado de opções e decidiu usar AppLife Atualização . AppLife Update pode rapidamente e facilmente adicionar funcionalidade de atualização automática para as suas aplicações .NET, mas também é flexível devido à sua API abrangente.
Veja a lista completa de recursos e alguns vídeos de demonstração em seu site.
DotNetAutoUpdate
Eu tenho implementado uma biblioteca para fazer isso chamado DotNetAutoUpdate (nome original hein?) . Destina-se a ser:
- simples de usar
- Simples de configurar
- Secure
Para atualizar aplicativos cliente .NET, dê uma olhada AppLife Atualização . É muito flexível, extensível e personalizável.
Disclaimer -. Eu sou associado com AppLife Atualização