0

我的 WiX XML 文件安装了包含名为 OLOLO_SERVICE 的 Windows 服务的应用程序(例如)。我想在安装/重新安装我的应用程序时停止此服务。

我使用带有 ExeCommand='sc stop OLOLO_SERVICE' 的 CustomAction。

<CustomAction Id='EnsureThatServiceIsStopped' Directory='INSTALLLOCATION' 
Impersonate="no" Execute="immediate" ExeCommand="sc 
stop OLOLO_SERVICE" Return="ignore" />

<InstallExecuteSequence> 标签里面是动作

<Custom Action='EnsureThatServiceIsStopped' Before='InstallValidate' />

但这不起作用,卸载程序显示此窗口“要继续卸载,您应该停止关注可执行文件”(可能不是 100% 正确,因为在我的俄语 Windows 7 中它是用俄语编写的)。

我认为可能的原因是

  • 脚本在获得管理员权限之前运行(并且停止服务失败,因为它需要管理员权限)
  • 脚本在验证后运行(检查已安装的可执行文件时验证失败)

请帮帮我,我想使用批处理“sc stop OLOLO_SERVICE”停止服务

PS。我决定简化一个问题:我希望我的 WiX 在检查正在运行的应用程序之前以管理员权限执行“sc stop OLOLO_SERVICE”

4

1 回答 1

2

您不需要在批处理文件中执行此操作,您可以使用ServiceControl元素:

<ServiceControl Id="ServiceControl_OloService" 
                Name="OLOLO_SERVICE"
                Stop="both"
                Remove="uninstall"
                Wait="yes" />
于 2012-09-27T15:53:02.893 回答