Pergunta

O NANT tem a capacidade de instalar ou desinstalar um serviço do Windows, usando o utilitário installutil ou qualquer outra coisa?

Foi útil?

Solução

Você pode chamar de Nant exec tarefa para chamar o installutil e pode passar parâmetros para instalar ou desinstalar um serviço facilmente

 <target name="install-service">
    <exec program="${framework::get-framework-directory('net-2.0')}\InstallUtil.exe">
      <arg value="-i" />
      <arg value="/name=V1" />
      <arg value="C:\Service\SomeService.exe" />      
    </exec>
  </target>

Outras dicas

Nant ou msbuild? Qual é o problema apenas com a execução do Instaltil - é isso que você faria no MSBuild. (Em geral, as compilações não fazem as instalações para coisas como essa, como regra, pois normalmente sua compilação deve ser capaz de executar em um servidor de construção aleatório).

Outra opção, que levaria a instalação da equação Adicionando uma opção auto-instalação ao seu serviço como este (faça uma busca por mais procurando self install windows service)

Se o seu serviço puder ser instalado em locais diferentes, você também poderá desinstalá -lo através de seu nome usando sc.exe, como segue:

<property name="serviceName" value="Name of the service"/>
<exec program="sc" failonerror="false" verbose="true" if="${service::is-installed(serviceName,'.')}">
 <arg value="delete"/>
 <arg value="${serviceName}"/>
</exec>

Se você usar o Projeto Topshelf Em seu aplicativo para hospedar seus serviços, você pode obter ferramentas baseadas em linha de comando para instalar / remover os serviços sem precisar do Installutil.

Serviço Service.exe Instalar o Serviço de Serviço de Serviço.exe Desinstalar

E você pode executar o serviço diretamente e obter uma boa janela de console que você pode ctrl+c para parar. Você pode integrar isso diretamente ao Nant ou MSBuild, executando o programa.

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