';wix与管理员一起卸载前执行批处理

';wix与管理员一起卸载前执行批处理,wix,uninstallation,custom-action,servicecontroller,Wix,Uninstallation,Custom Action,Servicecontroller,My WiX XML文件安装包含名为OLOLO_service的windows服务的应用程序(例如)。我想在安装/重新安装我的应用程序时停止此服务 我将CustomAction与execomand='sc stop OLOLO_SERVICE'一起使用 <CustomAction Id='EnsureThatServiceIsStopped' Directory='INSTALLLOCATION' Impersonate="no" Execute="immediate" ExeComma

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

我将CustomAction与execomand='sc stop OLOLO_SERVICE'一起使用

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

里面的标签是行动

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

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

我认为可能的原因是

  • 脚本在获得管理员权限之前运行(停止服务失败,因为它需要管理员权限)
  • 脚本在验证后运行(检查已安装的可执行文件时验证失败)
请帮助我,我想停止使用批处理“sc stop OLOLO_服务”的服务


另外,我决定简化一个问题:我想让我的WiX以管理员权限执行“sc stop OLOLOLO_服务”,在检查运行的应用程序之前,您不需要在批处理文件中执行此操作,您可以使用以下元素:


<ServiceControl Id="ServiceControl_OloService" 
                Name="OLOLO_SERVICE"
                Stop="both"
                Remove="uninstall"
                Wait="yes" />