情况
我有一个由Windows 窗体应用程序和 Windows 服务组成的应用程序。为了安装这些组件,我使用的是 WiX。到目前为止一切正常,但是当我尝试在 Windows XP 上安装时出现问题。
当安装程序在关闭安装之前尝试启动服务时,它不起作用。我收到“用户无权启动”消息。
我ServiceControl
从 .wxs 文件中删除了块,再次构建,尝试安装并重新启动电脑(这在 Windows XP 上)。所以现在我的服务开始正常了。
问题
只有当 Windows 是 XP 并且 Service Pack 小于 3 时,我才需要询问有关重新启动和禁用<ServiceControl>
的问题。<Component>
所以我尝试了这个:
<Product>
<!-- (...) -->
<InstallExecuteSequence>
<ScheduleReboot After="InstallFinalize">
<![CDATA[NOT (VersionNT <= 501 AND ServicePackLevel <> 3)]]>
</ScheduleReboot>
</InstallExecuteSequence>
<!-- (...) -->
</Product>
<!-- (...) -->
<Fragment>
<ComponentGroup>
<Component>
<File Id="ServExe" Name="Serv.exe" DiskId="1"
Source="Serv.exe" KeyPath="yes"/>
<ServiceInstall
Id="ServiceInstaller"
Type="ownProcess"
Name="Serv"
DisplayName="Serv"
Description="Serv"
Start="auto"
Account="[SERVICEACCOUNT]"
Password="[SERVICEPASSWORD]"
ErrorControl="normal" />
<ServiceControl Id="StartService" Start="install" Stop="both"
Remove="uninstall" Name="Serv" Wait="yes" />
</Component>
<!-- (...) -->
</ComponentGroup>
</Fragment>
但无论是什么 Windows(我尝试过 XP、XP SP 2、XP SP 3、Windows 7),我总是得到“需要重新启动”对话框。而且我不知道如何将安装时间条件放入<ServiceControl>
.
我该如何解决这个问题?