Остановка службы в WIX и запуск после завершения установки
Я использую WiX 3.5 для создания установщика, который устанавливает службу Windows и копирует библиотеки DLL в каталог bin стороннего приложения. Стороннее приложение также имеет ряд служб Windows, которые необходимо будет остановить до того, как библиотеки DLL будут скопированы и запущены после завершения установки. Что мне нужно сделать, чтобы достичь этого. Я искал примеры, но могу только найти, как запустить службу, которую я устанавливаю.
*** С другой стороны, устанавливаемая мной служба должна работать под определенной учетной записью пользователя. Я вижу, как определить служебную учетную запись / пароль в WIX, но я не решаюсь использовать ее, потому что она хранит незашифрованный пароль в XML, и у меня есть проблемы с безопасностью.
2 ответа
Прежде всего, чтобы остановить службу, вам нужно использовать элемент ServiceControl.
<ServiceControl Id="serviceName" Name="actualServiceName" Stop="both" Start="both" Wait ="yes" />
Чтобы не отвечать на вашу сторону, вы можете иметь имя пользователя и пароль в качестве свойств, которые пользователь отправляет в MSI, или которые пользователь вводит из графического интерфейса.
<ServiceInstall Id="serviceName" Name="shortName" DisplayName="longName" Type="ownProcess" Start="auto" ErrorControl="normal" Account="[USER]" Password="[USERPWD]" Description="description" />
<Property Id="USER" Value="defaultValue" />
<Property Id="USERPWD" Value="defaultValue" Hidden="yes" />
Конечно, значение по умолчанию не нужно, и не очень рекомендуется, но я все же поместил его туда.
Использование <ServiceControl/>
<ServiceControl Id="thirdPartyService" Name="thirdPartyService" Stop="install" Start="install" Wait="yes" />