Qual a melhor forma de implementar atualizações de software no Windows?[fechado]

StackOverflow https://stackoverflow.com/questions/37030

  •  09-06-2019
  •  | 
  •  

Pergunta

Quero implementar um sistema de "atualização automática" para um aplicativo Windows.No momento estou criando semi-manualmente um "appcast" que meu programa verifica e notifica o usuário de que uma nova versão está disponível.(Estou a usar NSIS para meus instaladores).

Existe algum software que eu possa usar para lidar com a parte "automática" das atualizações, talvez semelhante a Brilhar no Mac?Algum problema/armadilha que eu deva estar ciente?

Foi útil?

Solução

Não existe solução tão suave quanto o Sparkle (que eu saiba).

Se você precisa de um meio fácil de implantar e atualizar aplicativos, Clique uma vez é uma opção.Infelizmente, é inflexível (por exemplo, nenhuma instalação por máquina em vez de por usuário), opaco (você tem muito pouca influência, clareza e controle sobre como sua implantação realmente funciona) e não padrão (os caminhos em que armazena o aplicativo instalado). são diferentes de tudo no Windows).

Muito mais próximo do que você está perguntando seria Clique através, um projeto paralelo de WiX, mas não tenho certeza se ainda está em desenvolvimento (se estiver, eles deveriam ser mais claros sobre isso…) — e de qualquer forma, usaria o MSI, não o NSIS.

Provavelmente é melhor você rolar algo sozinho.Eu adoraria ver um projeto semelhante ao Sparkle para Windows, mas ninguém parece ter tentado até agora.

Outras dicas

Agora existe uma versão Windows do Sparkle, veja http://winsparkle.org.

A atualização automática do Google Chrome é baseada em Omaha:

http://code.google.com/p/omaha/

Deles visão geral tem uma ótima seção sobre por que era necessário:

O navegador normalmente solicitava ao usuário uma longa série de diálogos técnicos, confusos e assustadores, todos tentando convencer o usuário a não instalar.Em seguida, o usuário foi apresentado a um assistente repleto de opções que ele não precisava ou não sabia como decidir.Esses fatores se combinaram para formar uma experiência ruim para o usuário e grande desistência durante o processo de instalação do aplicativo

É uma boa ideia usar uma solução de terceiros, pois as atualizações automáticas podem ser um problema, especialmente com o Windows Vista/7 (UAC).Pelo que vale, o produto que minha empresa usa é Atualização automática+ e parece funcionar bastante bem.

Para .NET, há algum tempo, o Microsoft Patterns + Practices publicou o Bloco atualizador de aplicativos.Isso foi (na minha opinião) um tanto exagerado e exagerado, mas funcionou muito bem.

Em essência, ele usou um "carregador de stub" para verificar um manifesto e um serviço da Web para ver se uma versão do programa posterior à instalada estava disponível e, em seguida, usou a tecnologia de download em segundo plano do BITS para baixar uma nova versão, se alguma estivesse disponível em o servidor.

Depois que a nova versão for baixada e instalada (com .NET isso é tão simples quanto um xcopy para a pasta relevante), o aplicativo atualizaria o manifesto.Na próxima vez que o programa fosse carregado, a nova versão seria lançada.

Embora o código Patterns + Practices seja específico do .NET, não há nada lá que não possa ser copiado para um aplicativo não .NET, especialmente se você tiver a capacidade de executar silenciosamente o processo de instalação em segundo plano.

Eu fiz uma pergunta semelhante.Siga o link para ver as respostas.Autoatualização

Se o seu aplicativo estiver escrito em .Net, você pode tentar Clique uma vez.No entanto, é difícil executar ações administrativas ou personalizadas durante a instalação usando esta abordagem.

wyUpdate parece muito bom.Veja o vídeo aqui:http://wyday.com/wybuild/help/automatic-updates/

Para aplicativos .NET, você pode querer dar uma olhada em NetSparkle, uma variante do Sparkle para programas .NET.É bastante novo (desde 2011) e desenvolvido ativamente.

Acabei de chegar aqui a partir de uma resposta à minha própria pergunta sobre o mesmo assunto - menciono outra solução de atualização no meu pergunta.Ele usa um carregador stub e um arquivo xml para apontar para o executável mais recente.

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