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 表第一列的外键。
备注
序列表中的 StartServices、StopServices 和 DeleteServices 操作将处理此表中的信息。 若要了解如何使用序列表,请参阅使用 Sequence 表。
使用 Name 列可启动、停止或删除如下服务:正在由安装替换的服务,或者依赖于正在安装的新服务的服务。 例如,在 ServiceControl 列中输入 MyService 可以将此服务绑定到 Component_ 列中的 MyComponent。 如果在安装时将 Event 列中的位字段设置为 start,则安装程序将在安装 MyComponent 时启动 MyService。
验证