WiX - установить службу Windows и дать разрешения - PullRequest
10 голосов
/ 04 марта 2010

Мы обязаны предоставить пользователю разрешения на запуск, остановку и запрос статуса установленной службы.

В WiX 2.0 этот xml работал бы:

<ServiceInstall
    Id="ServiceInstaller" Type="ownProcess"
    Name="$(var.ServiceName)" DisplayName="$(var.ServiceName)" Description="Our service description"
    Start="demand" Account="LocalSystem" ErrorControl="ignore" Interactive="no">
    <Permission User="Everyone" ServiceQueryStatus="yes" ServiceStart="yes" ServiceStop="yes" />
</ServiceInstall>
<ServiceControl Id="StopService" Stop="both" Remove="uninstall" Name="$(var.OmniVpnServiceName)" Wait="yes" />

Мы используем WiX 3.0, и они удалили атрибуты Service * из элемента Permission и больше не позволяют ему быть дочерним элементом элемента ServiceInstall.

Как получить такой же эффект в WiX 3.0?

В качестве обзора нам нужно:

Установка службы с помощью:

  • Ручной запуск
  • Работает в локальной системе как "ownProcess"
  • Неинтерактивный с рабочим столом
  • Останавливается при удалении

Предоставить пользователю "Все" доступ к:

  • Начало
  • Стоп
  • Статус запроса

Об установленном сервисе.

1 Ответ

18 голосов
/ 04 марта 2010

Документация говорит, что используйте это внутри элемента ServiceInstall:

<util:PermissionEx
    User="Everyone"
    GenericAll="yes"
    ServiceChangeConfig="yes"
    ServiceEnumerateDependents="yes"
    ChangePermission="yes"
    ServiceInterrogate="yes"
    ServicePauseContinue="yes"
    ServiceQueryConfig="yes"
    ServiceQueryStatus="yes"
    ServiceStart="yes"
    ServiceStop="yes" />

Я не пробовал

используемое пространство имен равно xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"

...