我正在尝试使用WiX将预安装服务的启动类型设置为Automatic
。另一个任务是在安装时启动服务,我通过以下方式实现:
<ServiceControl
Id="ServiceRunningState"
Name="[Service Name]"
Start="install"
Stop="install"
Wait="yes" />
现在我还要设置启动类型。我尝试了以下内容(请参阅answer):
<ServiceConfig
Id="ServiceStartup"
ServiceName="[Service Name]"
DelayedAutoStart="yes"
OnInstall="yes"
OnReinstall="yes" />
但这并没有改变服务的启动类型(从Manual
启动类型测试)。此外,我希望启动类型为Automatic
,而不是Automatic (Delayed Start)
。
请注意,我正在尝试修改现有服务,因此没有ServiceInstall
元素。
这两个元素(ServiceControl
和ServiceConfig
)是Component
父元素中的子元素。
感谢任何帮助:)
答案 0 :(得分:2)
MSI不支持更改程序包未安装的服务的启动类型。 ServiceConfig
doesn't let you get around that:
仅适用于此软件包安装的已安装的自动启动服务或服务,其中包含ServiceInstall表的StartType字段中的SERVICE_AUTO_START。
答案 1 :(得分:0)
将“DelayedAutoStart”参数设置为“no”,而不是“yes”。
答案 2 :(得分:0)
通过RegistryKey
编辑注册表解决,请参阅示例:
<RegistryKey Root="HKLM"
Key="SYSTEM\CurrentControlSet\Services\[Service Name]"
Action="create">
<RegistryValue Type="integer" Name="Start" Value="2" />
<RegistryValue Type="integer" Name="DelayedAutostart" Value="0" />
</RegistryKey>
注意服务可能在服务GUI中显示为Automatic (Delayed Start)
。但是,重新启动后,Services GUI将服务启动类型显示为Automatic
。