Как установить и запустить службу Windows с помощью WiX - PullRequest
57 голосов
/ 21 декабря 2009

Я пытался использовать коды ниже в Wix.

Но при установке установщик зависал примерно на 3 минуты в состоянии: Запуск служб, затем я получил это сообщение: «Служба Job Service не удалось запустить. Убедитесь, что у вас достаточно прав для запуска системных служб». Что-то не так в моих кодах? И можно ли попросить пользователя ввести имя пользователя и пароль системы Windows во время установки, чтобы получить «привилегии»?

Большое спасибо!

    <File Id='JobServiceEXE' Name='JobService.exe' DiskId='1'
        Source='JobService.exe' Vital='yes' KeyPath='yes'/>         
    <ServiceInstall Id="ServiceInstaller" Type="ownProcess" Vital="yes"
        Name="JobService" DisplayName="123 Co. JobService"
        Description="Monitoring and management Jobs" Start="auto"
        Account="LocalSystem" ErrorControl="ignore" Interactive="no" />
    <ServiceControl Id="StartService"  Stop="both" Remove="uninstall"
        Name="JobService" Wait="yes" />
</Component>

Ответы [ 4 ]

70 голосов
/ 22 декабря 2009

Следующий код работает для меня ... нет необходимости запрашивать имя пользователя / пароль:)

    <File Id='JobServiceEXE' Name='JobService.exe' DiskId='1' Source='JobService.exe'  KeyPath='yes'/>         
    <ServiceInstall
      Id="ServiceInstaller"
      Type="ownProcess"
      Name="JobService"
      DisplayName="123 Co. JobService"
      Description="Monitoring and management Jobs"
      Start="auto"
      Account="[SERVICEACCOUNT]"
      Password="[SERVICEPASSWORD]"
      ErrorControl="normal"
      />
      <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="JobService" Wait="yes" />
    </Component>
15 голосов
/ 13 апреля 2011

Я обнаружил, что решение на этой странице правильно установит службу, но элемент ServiceControl не запустит службу.

Сравнивая установленную службу wix с установленной вручную службой ("JobService.exe / install"), в поле "Путь к исполняемому файлу" отсутствовал переключатель запуска. Исправлено это в wix с атрибутом arguments ServiceInstall;

<File Id='JobServiceEXE' Name='JobService.exe' DiskId='1' Source='JobService.exe'  KeyPath='yes'/>         
  <ServiceInstall
  Id="ServiceInstaller"
  Type="ownProcess"
  Name="JobService"
  DisplayName="123 Co. JobService"
  Description="Monitoring and management Jobs"
  Start="auto"
  Account="[SERVICEACCOUNT]"
  Password="[SERVICEPASSWORD]"
  ErrorControl="normal"
  Arguments=" /start JobService"
  />
  <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="JobService" Wait="yes" />
</Component>

Долгое время скрывался, это мой первый пост здесь - надеюсь, он кому-нибудь поможет.

2 голосов
/ 26 июля 2018

Обновление для пользователей версии 3.x WiX. Следующий код установит и запустит службу под локальной учетной записью. Обратите внимание на свойство Arguments в теге ServiceInstall.

<File Source="$(var.MyService.TargetPath)" />
<ServiceInstall Id="ServiceInstaller" Name="MyService" Type="ownProcess" Vital="yes" DisplayName="My Service" Description="My Service Description" Start="auto" Account="LocalSystem" ErrorControl="normal" Arguments=" /start MyService" Interactive="no" />
<ServiceControl Id="StartService" Name="MyService" Stop="both" Start="install" Remove="uninstall" Wait="yes" />
0 голосов
/ 09 января 2019

Мне помогло, по крайней мере, один раз, я удалил сервис для установки и удаления

<ServiceControl Remove="both" />

Я предполагаю, что это что-то удалило из Regedit

...