如何将依赖项添加到Windows服务

时间:2012-09-25 09:46:06

标签: c# windows-services dependencies installshield

如何在InstallShield中向Windows服务添加依赖项? 我的winservice依赖于以下两个服务,因此它们必须在服务启动之前运行:

  1. COMSysApp
  2. SENS
  3. 注意:我使用InstallShield项目来安装我的服务而不是Windows安装程序类,所以我无法使用先生的方式。 Jerry.Wang在his article中建议。

    修改

    如何在installshield中向SEN服务添加依赖项?

2 个答案:

答案 0 :(得分:2)

如果您对其他服务有依赖关系,ServiceInstall table有依赖关系列来描述:

  

此列是服务名称或加载顺序组的列表   系统必须在此服务之前启动。单独的名称   由Nulls列出。如果服务没有依赖项,则指定Null   或一个空字符串。使用语法[〜]插入Null。依赖于   一个组意味着如果至少有一个成员,该服务可以运行   尝试启动组的所有成员后,组正在运行。

     

例如,要求系统启动service1和service2,   在启动ServiceInstall列中列出的服务之前,请输入   service1 [〜] service2 [〜] [〜]进入Dependencies列。该   标识符service1和service2必须出现在主键中   该表或是已安装的服务的名称。

     

您必须在组名前加上+,以便区分它们   从服务名称。要求系统启动service1和at   在开始之前,订购组MyGroup中至少有一个成员   在ServiceInstall列中列出的服务,输入   服务1 [〜] + MyGroup的[〜] [〜]。

以下是InstallShield对该表的表示的说法:

Services Settings

输入此服务所需的任何服务或加载订购组。在启动此服务之前,系统会尝试启动从属服务或加载顺序组的至少一个成员。

用逗号(,)分隔多个依赖项。

  

您必须在每个加载订购组的名称前面加上   SC_GROUP_IDENTIFIER-通常是加号(+) - 所以   服务控制管理器可以将其与服务区分开来。

答案 1 :(得分:0)

我自己通过在ServiceComponent向导中添加依赖项来解决它。