如何将依赖项添加到 InstallShield 中的 Windows 服务?我的winservice依赖以下两个服务,所以必须在服务启动前运行:
- COMSysApp
- SENS
注意:我使用 InstallShield 项目来安装我的服务,而不是 Windows 安装程序类,所以我不能使用 mr 的方式。Jerry.Wang 在他的文章中建议。
编辑:
如何在 installshield 中添加对 SEN 服务的依赖项?
如何将依赖项添加到 InstallShield 中的 Windows 服务?我的winservice依赖以下两个服务,所以必须在服务启动前运行:
注意:我使用 InstallShield 项目来安装我的服务,而不是 Windows 安装程序类,所以我不能使用 mr 的方式。Jerry.Wang 在他的文章中建议。
编辑:
如何在 installshield 中添加对 SEN 服务的依赖项?
如果您对其他服务有依赖关系,则ServiceInstall 表有 Dependencies 列来描述这一点:
此列是系统必须在此服务之前启动的服务或负载排序组的名称列表。用 Null 分隔列表中的名称。如果服务没有依赖项,则指定 Null 或空字符串。使用语法 [~] 插入 Null。对组的依赖意味着如果在尝试启动组的所有成员后至少有一个组成员正在运行,则此服务可以运行。
例如,要求系统启动 service1 和 service2,在启动 ServiceInstall 列中列出的服务之前,在 Dependencies 列中输入 service1[~]service2[~][~]。标识符 service1 和 service2 必须出现在表的主键中,或者是已安装的服务的名称。
您必须在组名称前加上 + 前缀,以便将它们与服务名称区分开来。要要求系统在启动 ServiceInstall 列中列出的服务之前启动 service1 和排序组 MyGroup 的至少一个成员,请输入 service1[~]+MyGroup[~][~]。
以下是 InstallShield 对他们对该表的表示的看法:
输入此服务所需的任何服务或负载排序组。在启动此服务之前,系统会尝试启动相关服务或加载排序组的至少一个成员。
使用逗号 (,) 分隔多个依赖项。
您必须在每个加载排序组的名称前加上 SC_GROUP_IDENTIFIER(通常是加号 (+)),以便服务控制管理器可以将其与服务区分开来。
我通过在 ServiceComponent Wizard 中添加依赖项自己解决了这个问题。