Я пишу MSI, который устанавливает службу Windows и добавляет некоторые библиотеки DLL, которые использует служба.Эти библиотеки DLL - это функции, которые можно добавлять или удалять с помощью установщика.
После того, как пользователь изменяет установленный продукт (например, добавляет новую функцию), необходимо перезапустить службу Windows.Есть ли более элегантный способ сделать это в WiX 3.5, кроме вызова пользовательского действия, которое перезапустит службу?
Вот так я запускаю службу.
<ServiceControl Id="StartService" Name="MyService" Start="install" Stop="both" Remove="uninstall" Wait="yes" />
РЕДАКТИРОВАТЬВот полный код компонента.Не обращайте внимания на идентификаторы.
<Component Id="MyService" Guid="GUID">
<File Id="MyService"
Source="$(var.BuildDestination)/$(var.NameSpacePrefix).MyService.exe"
KeyPath="yes"
>
</File>
<RemoveFile Id='AppConfigFile' On='uninstall' Name='MyService.exe.Config' />
<User xmlns="http://schemas.microsoft.com/wix/UtilExtension"
Id="ServiceAccount"
CreateUser="no"
FailIfExists="no"
RemoveOnUninstall="no"
UpdateIfExists="yes"
Disabled="no"
LogonAsService="yes"
Name="[ACCOUNT]"
Password="[PASSWORD]" />
<ServiceInstall
Id="MyService"
Type="ownProcess"
Vital="yes"
Name="MyService"
DisplayName="MyService"
Description="MyService"
Start="auto"
Account="[ACCOUNT]"
Password="[PASSWORD]"
ErrorControl="ignore"
Interactive="no">
</ServiceInstall>
<ServiceControl Id="StartService"
Name="MyService"
Start="install"
Stop="both"
Remove="both"
Wait="yes"
>
</ServiceControl>