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?

Foi útil?

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:

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top