Domanda

non NAnt hanno la capacità di installare o disinstallare un servizio di Windows, utilizzando l'utilità InstallUtil o qualsiasi altra cosa?

È stato utile?

Soluzione

È possibile chiamare exec compito di Nant chiamare InstallUtil e in grado di passare i parametri per installare o disinstallare un servizio 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>

Altri suggerimenti

Nant o MSBuild? Qual è il problema con un solo correre installutil te stesso - questo è quello che ci si fa in MSBuild. (In generale, costruisce Dont le installazioni per le cose come questo come regola come tipicamente la build dovrebbe essere in grado di girare su un server di generazione casuale).

Un'altra opzione, che potrebbe assumere installutil fuori dell'equazione è l'aggiunta di un auto-installazione opzione per il vostro servizio come questo (hanno una ricerca di più, cercando di self install windows service)

Se il servizio può essere installato in luoghi diversi, è anche possibile disinstallarlo tramite il suo nome utilizzando Sc.exe, come 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 si utilizza il TopShelf Progetto nell'applicazione per ospitare i vostri servizi, è possibile ottenere da riga di comando strumenti basati per l'installazione / rimozione dei servizi senza bisogno InstallUtil.

Servizio ServiceName.exe installare servizio ServiceName.exe uninstall

E si può eseguire il servizio direttamente e ottenere una bella finestra di console che è possibile CTRL + C per fermata. È possibile integrare questo direttamente in Nant o MSBuild eseguendo il programma.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top