Вопрос

У NANT есть возможность устанавливать или удалить службу Windows, используя утилиту INSTORTUTIL или что-то еще?

Это было полезно?

Решение

Вы можете назвать NANT's предпринять Задача для вызова installutil и может передавать параметры для установки или удаления сервиса легко

 <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>

Другие советы

NANT или MSBUILD? В чем проблема с запуском installutil - это то, что вы делаете в MSBuild. (В целом сборки не делают установки для таких вещей, как это, как правило, как правило, ваша сборка должна иметь возможность работать на случайном сервере сборки).

Другой вариант, который взял бы установку из уравнения, Добавление варианта самоустановки на ваш сервис, как это (Ищите поиск больше, ищу self install windows service)

Если ваш сервис может быть установлен в разных местах, вы также можете удалить его через его имя, используя SC.exe, следующим образом:

<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>

Если вы используете ТОПОЩЕННЫЙ ПРОЕКТ В вашем приложении для размещения ваших услуг вы можете получить инструменты на основе командной строки для установки / удаления услуг без необходимости Installutil.

ServiceName.exe Услуги Установка ServiceName.exe Услуги Удаление

И вы можете запустить службу напрямую и получить приятное консольное окно, которое вы можете Ctrl + C, чтобы остановить. Вы можете интегрировать это непосредственно в NANT или MSBUILD, выполняя программу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top