-2

InstallShield で Windows サービスに依存関係を追加する方法は? 私の winservice は次の 2 つのサービスに依存しているため、サービスを開始する前にそれらを実行する必要があります。

  1. COMSysApp
  2. センス

注: 私は InstallShield プロジェクトを使用してサービスをインストールしましたが、Windows インストーラー クラスは使用できませんでした。Jerry.Wang は彼の記事で提案しました。

編集:

installshield で SEN サービスに依存関係を追加する方法は?

4

2 に答える 2

2

他のサービスへの依存関係がある場合、ServiceInstall テーブルには、これを説明する [依存関係] 列があります。

この列は、システムがこのサービスの前に開始する必要があるサービスまたは負荷順序グループ​​の名前のリストです。リスト内の名前は Null で区切ります。サービスに依存関係がない場合は、Null または空の文字列を指定します。Null を挿入するには、構文 [~] を使用します。グループへの依存とは、グループのすべてのメンバーを開始しようとした後、グループの少なくとも 1 つのメンバーが実行されている場合に、このサービスを実行できることを意味します。

たとえば、システムが service1 と service2 を開始することを要求するには、ServiceInstall 列にリストされているサービスを開始する前に、service1[~]service2[~][~] を Dependencies 列に入力します。識別子 service1 および service2 は、テーブルの主キーに含まれているか、既にインストールされているサービスの名前である必要があります。

サービス名と区別できるように、グループ名の前に + を付ける必要があります。ServiceInstall 列にリストされているサービスを開始する前に、システムが service1 と順序付けグループ MyGroup の少なくとも 1 つのメンバーを開始することを要求するには、service1[~]+MyGroup[~][~] と入力します。

そのテーブルの表現について、InstallShield は次のように述べています。

サービス設定

このサービスに必要なサービスまたは負荷順序グループ​​を入力します。システムは、このサービスを開始する前に、依存するサービスまたは負荷順序グループ​​の少なくとも 1 つのメンバーを開始しようとします。

複数の依存関係はコンマ (,) で区切ります。

Service Control Manager がそれをサービスと区別できるように、各ロード順序付けグループの名前の前に SC_GROUP_IDENTIFIER (通常はプラス記号 (+)) を付ける必要があります。

于 2012-09-26T11:20:06.510 に答える
0

ServiceComponent Wizard に依存関係を追加して、自分で解決しました。

于 2012-09-29T09:19:18.583 に答える