gpt4 book ai didi

service - WiX - 修改安装的产品后重启服务

转载 作者:行者123 更新时间:2023-12-04 05:59:45 24 4
gpt4 key购买 nike

我正在编写一个 MSI,它安装 Windows 服务并添加该服务使用的一些 DLL。这些 DLL 是可以使用安装程序添加或删除的功能。

用户修改安装的产品(如添加新功能)后,需要重新启动windows服务。除了调用会重新启动服务的自定义操作之外,在 WiX 3.5 中还有更优雅的方法吗?

这就是我启动服务的方式。

<ServiceControl Id="StartService" Name="MyService" Start="install" Stop="both" Remove="uninstall"  Wait="yes" />

编辑:
这是完整的组件代码。无视id。
<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>

最佳答案

由于服务功能(安装和启动服务的功能)的状态没有更新,服务本身也没有停止和启动。
我通过将 ServiceControl 添加到作为独立功能的所有组件解决了这个问题。

<Component Id="Modules1" Guid="GUID">
<File Id="Modules.1" Source="$(var.BuildDestination)/$(var.NameSpacePrefix)Modules.1.dll" KeyPath="yes">
</File>
<ServiceControl Id="StartService1"
Name="MyService"
Start="install"
Stop="both"
Wait="yes"
>
</ServiceControl>

关于service - WiX - 修改安装的产品后重启服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9066804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com