Como instalar o serviço gerenciado do wix?
-
26-09-2019 - |
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?
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.