Как установить и запустить службу Windows с помощью WiX
Я пытался использовать коды ниже в 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 ответа
Следующий код работает для меня... нет необходимости запрашивать имя пользователя / пароль:)
<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>
Я обнаружил, что решение на этой странице установит службу правильно, но элемент 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>
Давно скрытый, это мой первый пост здесь - надеюсь, он кому-нибудь поможет.
Обновление для пользователей версии 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" />
Для меня это помогло хотя бы раз, я удалил сервис как для установки, так и для удаления
<ServiceControl Remove="both" />
Я предполагаю, что это удалило что-то из Regedit