【发布时间】:2017-01-23 19:59:22
【问题描述】:
我正在编写一个 Wix 安装程序。此安装程序的第一步是停止 Windows 服务。我在InstallExecuteSequence 中找到了Wix 元素StopServices,这似乎可以满足我的要求,但我找不到任何使用它的示例。具体来说,我不明白服务名称是如何指定的。
如何在我的 Wix 安装开始时停止服务(并在最后重新启动)?
【问题讨论】:
标签: wix windows-installer
我正在编写一个 Wix 安装程序。此安装程序的第一步是停止 Windows 服务。我在InstallExecuteSequence 中找到了Wix 元素StopServices,这似乎可以满足我的要求,但我找不到任何使用它的示例。具体来说,我不明白服务名称是如何指定的。
如何在我的 Wix 安装开始时停止服务(并在最后重新启动)?
【问题讨论】:
标签: wix windows-installer
服务的内部名称(而不是显示名称)将起作用。在 Windows 10 任务管理器中,它们是“服务”选项卡中的名称 - 显示内部名称。在服务小程序(运行 services.msc)中,服务的属性将显示名称和显示名称。如果您使用 WiX ServiceInstall 安装了该服务,则内部名称就是您在那里使用的名称。
服务有一个内部名称和一个显示名称,就像在安装一个的 MSI 中的 ServiceInstall 表中一样:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa371637(v=vs.85).aspx
这基本上是 CreateService API 的参数列表:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms682450(v=vs.85).aspx
对服务执行操作的 API 和安装程序使用该内部名称(ServiceInstall 和 ServiceControl 中的名称),因为显示名称是可本地化的,但内部名称保持不变。
【讨论】: