atualizar automaticamente meu aplicativo .NET em Vista sem direitos de administrador

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

  •  09-09-2019
  •  | 
  •  

Pergunta

Eu sei que houve uma tonelada de perguntas sobre como implementar atualizações automáticas em um aplicativo .NET, e eu provavelmente ler a maioria deles. Infelizmente, nenhum eu vi bastante caber minha situação, tanto quanto eu posso dizer.

Eu estou tentando construir um aplicativo .NET auto-atualização que será executado em um ambiente com contas de usuário limitadas. Não há direitos de administrador aqui. O pedido deve ser executado em Vista e XP, e provavelmente o Windows 7 quando ele sai. Uma implementação X-cópia seria ótimo. Eu preferiria não usar clique com o botão uma vez

Até agora eu tentei um sistema onde o aplicativo verifica um manifesto e os downloads binários atualizados, que trabalhou muito no desenvolvimento, mas não tanto quando o aplicativo foi instalado. Vista se recusa a me deixar copiar arquivos para Arquivos de Programas. Depois disso, eu tentei baixar um .msi atualizado, que funciona, exceto que a MSI tem um UAC pronto - não vá se o usuário não tiver uma conta com privilégios de administrador local.

Algumas mensagens têm sugerido que a execução do programa em AppData e usando o x-cópia método de trabalho poder, mas eu não vi ninguém dizer que eles têm tentei e não funcionou. Será que esse trabalho para uma conta sem direitos de administrador? Alguém pode atestar a este método antes de eu começar a escrever mais código?

Foi útil?

Solução

Você só precisa ter certeza de que você está 'instalar' (ou seja, copiar para) um local que usuários não-privilegiados têm acesso.

Não há nada mágico sobre Arquivos de Programas, exceto que um usuário não-privilegiado não pode escrever a ele (por padrão).

Se você tem um administrador que a sua instalação inicial, então você pode alterar as permissões em seus arquivos de programa pasta para que as atualizações subsequentes poderiam substituir esses arquivos. Mas isso não é realmente no espírito das coisas.

As principais desvantagens do ClickOnce são a localização incomum instalar e o instalador primitivo - se você vai estar fazendo xcopy para qualquer maneira em algum lugar estranho, então você já tem muito do que já está icky sobre ClickOnce, sem nenhuma das vantagens.

Outras dicas

Apesar de bastante complexo, uma estratégia que vai funcionar é criar um serviço do Windows que é executado como sistema local. Instalá-lo uma vez como um usuário administrativo, em seguida, ter este serviço de download de suas atualizações e copiá-los para o diretório arquivos de programas.

Provavelmente você também precisa fazer algum tipo de interface do usuário para o progresso de exibição e status durante o processo de atualização. Bastante fácil de expô-la através de um serviço WCF, ou algo semelhante.

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