Windows installer 在StartService操作期间清除错误消息框

Windows installer 在StartService操作期间清除错误消息框,windows-installer,Windows Installer,我需要在安装我的产品期间尝试停止某些windows服务,并尝试在之后运行。该服务与产品无关,它可能存在于或不存在于某台PC上。它可能在产品(de)安装时运行,也可能不运行。我不在乎服务停止/运行是否成功,例如,如果在安装完成后服务无法运行,那也没关系 我在msi包中添加了ServiceControl表,设置了Wait选项0。 如果系统上没有安装该服务,我会收到一个错误消息框 除了/passive|/quiite安装选项或使用CustomAction,还有什么方法可以摆脱此MessageBox?

我需要在安装我的产品期间尝试停止某些windows服务,并尝试在之后运行。该服务与产品无关,它可能存在于或不存在于某台PC上。它可能在产品(de)安装时运行,也可能不运行。我不在乎服务停止/运行是否成功,例如,如果在安装完成后服务无法运行,那也没关系

我在msi包中添加了
ServiceControl
表,设置了
Wait
选项
0
。 如果系统上没有安装该服务,我会收到一个错误消息框

除了
/passive
|
/quiite
安装选项或使用
CustomAction
,还有什么方法可以摆脱此MessageBox?我只是不想让它出现

我不使用WiX


谢谢大家!

我不确定在使用ServiceControl表时是否可以抑制该错误,但另一个选项是使用自定义操作:

您可以使用两个Type34自定义操作(一个停止,一个启动)

  • 将工作目录设置为SystemFolder
  • 将命令行设置为:NET[START | STOP][ServiceName]
  • 将返回处理设置为同步,并忽略退出代码
  • 将脚本内执行选项设置为“在系统上下文中延迟”
  • 在InstallInitialise和InstallFinalize之间安排启动/停止(您将需要2个)自定义操作
您的自定义操作表最终将类似于以下内容:

Action              Type    Source          Target
NewCustomAction1    3170    SystemFolder    NET STOP ServiceName
NewCustomAction2    3170    SystemFolder    NET START ServiceName
Action              Condition       Sequence
NewCustomAction1    NOT Installed   1501
NewCustomAction2    NOT Installed   6599
您的InstallExecuteSequence与此类似:

Action              Type    Source          Target
NewCustomAction1    3170    SystemFolder    NET STOP ServiceName
NewCustomAction2    3170    SystemFolder    NET START ServiceName
Action              Condition       Sequence
NewCustomAction1    NOT Installed   1501
NewCustomAction2    NOT Installed   6599

看来只有采取行动才能解决问题。3170的用途是什么?3170只是十进制格式的标志位的累加。我现在只是在我的手机上,但我已经读到了:我认为这相当于:“从目录启动可执行文件”,“运行延迟”(当应用系统更改时,而不是立即:当系统更改正在计划和完成时),“作为本地系统运行-无模拟”,“等待自定义操作完成后再继续”。