Pergunta

Eu estou tentando configurar um instalador para algum software que usamos dentro da empresa.

O instalador é empurrado para fora para máquinas de destino através de SMS, e ele executa as seguintes etapas:

  1. Terminar todas as instâncias em execução do aplicativo (o aplicativo é um utilitário, de modo que este não é um impacto sobre o usuário).
  2. Remova a versão anterior.
  3. instalar a versão atualizada.

O que quer que ele faça é o lançamento instalado executável (como o usuário conectado no momento, não a conta do sistema que as execuções de tarefa SMS como) uma vez o passo 3 for concluída.

Eu tentei adicionar uma ação personalizada da seguinte forma:

<CustomAction Id="Relaunch" Impersonate="yes" Return="asyncNoWait" FileKey="AppExeFile" Execute="commit" ExeCommand="acm" />

E no elemento InstallExecuteSequence eu tenho a seguinte:

<Custom Action="Relaunch" OnExit="success" />

No entanto, quando tentamos isso, quer como um trabalho SMS ou executar como administrador não acontece nada (por exemplo, o aplicativo não é relançada).

Todas as sugestões?

Foi útil?

Solução 2

Infelizmente parece isso não é possível - Acho que pode ser uma opção para escrever uma extensão para o MSI que faz o que eu preciso no código de alguma forma - embora parece um monte de trabalho para uma pequena recompensa.

O que nós decidimos fazer é usar o SMS para enviar um pacote encadeado -. A primária que executa nossa aplicação, que pela primeira vez depende do instalador a ser executado

Espero que isso ajude alguém:)

Outras dicas

A solução que eu vim acima com é começar a nossa utilidade usando a chave de registro Run no início da sessão, e para prevenir de lançar o utilitário durante a instalação se o usuário atual é "SYSTEM" - isto não foi especificamente com o SMS, mas utilizando implantação do AD / GPO. No entanto, alguns de nossos clientes estão usando SMS e esta foi a solução que funcionou para eles.

problemas similares com Vista / Server 2008 UAC, a única solução confiável que eu vim acima com o que há para agendar uma reinicialização para que quando o usuário fizer backup no utilitário é lançado sob o contexto de usuário correto.

Eu fiz um pouco de pesquisa e olhando através de documentação MSI e parece que os privilégios de-elevatórias de lançar um utilitário de fundo como outro usuário não é realmente possível.

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