Если бы Вы хотите его без пути тогда, Вы использовали бы ${0##*/}
Вы пробовали ...
NT AUTHORITY\LocalService
Согласно этому документу . ..
... но имя учетной записи должно быть NT AUTHORITY \ LocalService при звонке CreateService, независимо от языковой стандарт, или неожиданные результаты могут
ссылка: Таблица ServiceControl
В документации MSI для таблицы ServiceControl указано, что «Имя» - это строковое имя службы. В фрагменте кода для вашего ServiceControl 'Name' задано значение 'ID' для ServiceInstall, а не его 'Name'. Итак, ваши элементы ServiceControl должны выглядеть так:
<ServiceControl Id="StartDDService" Name="MyProgramAddon" Start="install" Wait="no" />
<ServiceControl Id="StopDDService" Name="MyProgramAddon" Stop="both" Wait="yes" Remove="uninstall" />
Имелась та же проблема, но с указанными учетными записями, он наскучил и вместо этого создал центр сертификации для запуска службы после завершения установки. Только не пытайтесь запустить его с помощью MSI, просто оставьте это CA, если вы не получите откуда-нибудь информацию о качестве.
Кстати, использование LocalSystem и запущенная вручную служба работает нормально. Никаких других вариантов работы не было.
Обратите внимание, что в документации для элемента ServiceInstall об атрибуте Account написано: «Учетная запись, под которой запускается служба. . Действителен, только если ServiceType имеет значение ownProcess. ". В вашем примере вы не указали тип службы ownProcess, который может быть проблемой.
Я потратил некоторое время на это и обнаружил, что это потому, что у меня атрибут keyath установлен на компоненте, а не на файле. Мой wix-файл теперь выглядит следующим образом:
<Component Id="comp_WF_HOST_18" DiskId="1" KeyPath="no" Guid="3343967A-7DF8-4464-90CA-7126C555A254">
<File Id="file_WF_HOST_18" Checksum="yes" Source="C:\Projects\GouldTechnology\Infrastructure\WorkflowHost\WorkflowHost\bin\Release\WorkflowHost.exe" KeyPath="yes"/>
<ServiceInstall
Id="workflowHostInstaller"
Type="ownProcess"
Vital="yes"
Name="WorkflowHost"
DisplayName="Workflow Host"
Start="demand"
Account="[WORKFLOW_HOST_USER_ACCOUNT]"
Password="[WORKFLOW_HOST_USER_PASSWORD]"
ErrorControl="critical"
Interactive="no"/>
<ServiceControl Id="StartWFService" Name="workflowHostInstaller" Start="install" Stop="both" Remove="both" Wait="no" />
</Component>
Теперь мне просто нужно разобраться, как дать ему правильные права....
У меня была такая же проблема. Оказалось, что у меня была опечатка в Name
не совпадало с именем службы, которое я указал в проекте службы при его создании.
Это также было причиной того, что моя служба не удалялась.