Pergunta

É possível/recomendado usar o InstallService Elemento para instalar um serviço do Windows escrito no código gerenciado (c#)? (Eu tentei e ele instala o serviço, mas o serviço não começa)

Ou isso requer uma ação personalizada que chama o instalação?

Ou há outra maneira de fazer isso?

Foi útil?

Solução

Estou em um estudo de Wix agora e consegui instalar/desinstalar um serviço gerenciado com apenas um serviço de serviço padrão/serviceControl (e por que não se podemos usar apenas usar sc para isso). Pelo que li e concordo, usar uma tarefa personalizada com o installutil é considerado uma péssima prática: Eu costumava instalar contadores de perf em meu instalador .NET, mas agora vou ir para o Wix Way para isso.

A propósito, tive que adicionar um elemento ServiceControl para que o serviço foi iniciado após a instalação (Start Attribute) e, mais importante, para mim, completamente desinstalado durante a desinstalação (remova o atributo).

  <ServiceControl Id='ControlStansWinService' Remove='both' Name='StansWinService' Start='install' Stop='both' Wait='yes' />

Eu publiquei minhas descobertas até agora aqui, espero que você possa achar útil.

Outras dicas

Você deve usar o elemento Wix InstallService, pois ele faz todo o trabalho de instalar o serviço e iniciar e interromper/remover o serviço na instalação e desinstalar. Se você usar a ação personalizada para invocar a instalação para instalar o serviço, precisará fazer o início e parar o serviço novamente usando manualmente usando o CustomAction.

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