ServiceControl 表

ServiceControl 表用于控制已安装或已卸载的服务。

注意

如果服务依赖于全局程序集缓存 (GAC) 中的程序集,则不能使用 ServiceInstall 和 ServiceControl 表安装或启动。 如果需要启动依赖于 GAC 中的程序集的服务,则必须使用顺序排在 InstallFinalize 操作之后的自定义操作,或者是提交自定义操作。 有关将程序集安装到 GAC 的信息,请参阅将程序集安装到全局程序集缓存

 

ServiceControl 表具有以下列。

类型 密钥 Nullable
ServiceControl Identifier Y N
名称 Formatted N N
事件 整数 N N
参数 格式化 N Y
Wait 整数 N Y
Component_ Identifier N N

 

ServiceControl

这是此表的主键。

Name

此列是用于命名服务的字符串。 此列可用于控制未安装的服务。

Event

此列包含要对命名服务执行的操作。 请注意,停止服务时,依赖于该服务的所有服务也会停止。 删除正在运行的服务时,安装程序会停止该服务。

此字段中的值是位字段,可以合并为单个值以表示多个操作。

以下值仅在安装期间使用。

常数 十六进制 十进制 说明
msidbServiceControlEventStart 0x001 1 StartServices 操作期间启动服务。
msidbServiceControlEventStop 为 0x002 2 StopServices 操作期间停止服务。
(无) 0x004 4 <reserved>
msidbServiceControlEventDelete 0x008 8 DeleteServices 操作期间删除服务。

 

以下值仅在卸载期间使用。

常数 十六进制 十进制 说明
msidbServiceControlEventUninstallStart 0x010 16 StartServices 操作期间启动服务。
msidbServiceControlEventUninstallStop 0x020 32 StopServices 操作期间停止服务。
(无) 0x040 64 <reserved>
msidbServiceControlEventUninstallDelete 0x080 128 DeleteServices 操作期间删除服务。

 

Arguments

用于启动服务的参数列表。 参数由 null 字符 [~] 分隔。 例如,参数 One、Two 和 Three 的列表列为:One[~]Two[~]Three。

Wait

将此字段保留为 null 或输入值 1 会导致安装程序在继续操作之前等待服务完成最多 30 秒。 等待可用于让关键事件有额外的时间返回失败错误。 如果此字段中的值为 0,则意味着仅等到服务控制管理器 (SCM) 报告此服务处于挂起状态,然后继续安装。

Component_

Component 表第一列的外键。

备注

序列表中的 StartServicesStopServicesDeleteServices 操作将处理此表中的信息。 若要了解如何使用序列表,请参阅使用 Sequence 表

使用 Name 列可启动、停止或删除如下服务:正在由安装替换的服务,或者依赖于正在安装的新服务的服务。 例如,在 ServiceControl 列中输入 MyService 可以将此服务绑定到 Component_ 列中的 MyComponent。 如果在安装时将 Event 列中的位字段设置为 start,则安装程序将在安装 MyComponent 时启动 MyService。

验证

ICE03
ICE06
ICE32
ICE45
ICE46
ICE69