You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Wix安装程序的StopServices与StartServices间添加自定义操作?

Wix安装程序:将自定义操作调度在StopServices与StartServices之间

解决核心错误:移除冲突属性

Wix的<Custom>元素不允许同时指定After和Before属性,这是触发CNDL0035错误的直接原因。只需保留其中一个属性即可实现需求——由于内置的StartServices操作默认在StopServices之后执行,因此只需将自定义操作绑定到StopServices之后,就能自动插入到两者之间的执行顺序中。

正确调度代码示例

在InstallExecuteSequence中声明自定义操作:

<InstallExecuteSequence>
  <!-- 仅保留After属性,绑定到StopServices之后 -->
  <Custom Action="IisRewriteRules" After="StopServices">NOT REMOVE~="ALL"</Custom>
</InstallExecuteSequence>

无需手动控制服务的原因

你完全不需要通过ServiceControl手动启停服务,因为:

  • StopServices是Wix内置操作,会自动停止所有安装包中标记为ServiceControl且需要停止的服务
  • StartServices同样是内置操作,会在后续步骤自动启动这些服务
  • 只要自定义操作被调度在这两个内置操作之间,执行时服务必然处于停止状态

额外注意事项

  • 确保InstallExecuteSequence中的声明是最终生效的调度规则,避免其他Sequence设置覆盖顺序
  • 验证条件NOT REMOVE~="ALL"是否覆盖了所有需要执行自定义操作的场景(比如安装、升级、修复,排除完全卸载)

内容的提问来源于stack exchange,提问作者woutervanrobays

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 14:40:45