WiX - установить службу Windows и дать разрешения
Мы обязаны предоставить пользователю разрешения на запуск, остановку и запрос статуса установленной службы.
В 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 ответ
Решение
Документация говорит, что используйте это внутри элемента 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"