gpt4 book ai didi

WiX MSI 在不启动的情况下安装 Windows 服务

转载 作者:行者123 更新时间:2023-12-04 07:19:51 25 4
gpt4 key购买 nike

我正在尝试为我的 Windows 服务创建一个 WiX MSI 安装程序,它将安装该服务,但不启动它。我似乎无法找到任何解释如何执行此操作或是否可能的地方。

我试图删除用于启动服务的 ServiceControl 以及切换 ServiceInstall 上的 Start 属性,但没有任何运气。必须有可能做到这一点,对吧?我只希望 MSI 文件安装该服务,并让用户在需要时启动它。

<Component Id="ServiceInstaller" Guid="9e578e3d-0339-425c-8633-f54ffaaa4921">

<ServiceInstall Id="ReportingServiceInstaller"
Type="ownProcess"
Vital="yes"
Name="WindowsService.exe"
DisplayName="WindowsService"
Description="Wickedly awesome and amazing service."
ErrorControl="ignore"
Account="NT AUTHORITY\LocalService"
Start="auto"
Interactive="no" />

<ServiceControl Id="ServiceControl_Stop"
Name="WindowsService.exe"
Stop="both"
Remove="uninstall"
Wait="no" />

</Component>

最佳答案

不要使用 ServiceControl 元素,因为它将启动和停止服务。通过调用它,您是在要求安装程序对服务执行某些操作。您只需要调用 ServiceInstall 即可创建服务。正如 Stefan Wanitzek 建议的那样,您应该在 ServiceInstall 的 Start 属性中使用 demand。这是为了使您的服务在用户重新启动计算机时不会开始运行。如果您的安装程序也安装 .exe,请使用安装服务添加该文件。我建议使用从您的代码中获取的以下内容:

<Component Id="ServiceInstaller" Guid="3e412e3d-0339-325c-8633-f54ffaaa4921">
<File Id="WindowsService.exe"
Name="WindowsService.exe"
KeyPath="yes"
Source="Path to the EXE"/>
<ServiceInstall Id="ReportingServiceInstaller"
Type="ownProcess"
Vital="yes"
Name="WindowsService"
DisplayName="WindowsService"
Description="Wickedly awesome and amazing service."
ErrorControl="ignore"
Account="NT AUTHORITY\LocalService"
Start="demand"
Interactive="no" />
</Component>

关于WiX MSI 在不启动的情况下安装 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34046837/

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