ServiceInstaller.Install(IDictionary) メソッド

定義

サービス アプリケーション情報をレジストリに書き込むことで、サービスをインストールします。 この方法は、適切な方法を自動的に処理するインストール ツールで使用することを目的としています。

public:
 override void Install(System::Collections::IDictionary ^ stateSaver);
public override void Install(System.Collections.IDictionary stateSaver);
override this.Install : System.Collections.IDictionary -> unit
Public Overrides Sub Install (stateSaver As IDictionary)

パラメーター

stateSaver
IDictionary

インストールに関連付けられているコンテキスト情報を含む IDictionary

例外

インストールには、実行可能ファイルの ServiceProcessInstaller が含まれていません。

-または-

アセンブリのファイル名が null または空の文字列です。

-または-

サービス名が無効です。

-または-

サービス コントロール マネージャーを開くことができませんでした。

サービスの表示名の長さが 255 文字を超えています。

システムがサービスへのハンドルを生成できませんでした。

-または-

その名前のサービスは既にインストールされています。

注釈

通常、コード内の ServiceInstaller でメソッドを呼び出すわけではありません。通常、これらはインストール ユーティリティによってのみ呼び出されます。 インストール ユーティリティは、インストール時に Install メソッドを自動的に呼び出します。 必要に応じて、例外を生成したオブジェクトに対して Rollback を呼び出すことによって、エラーをバックアウトします。

アプリケーションのインストール ルーチンは、プロジェクト インストーラーの Installer.Contextを使用して、既にインストールされているコンポーネントに関する情報を自動的に保持します。 この状態情報は、stateSaver パラメーターとしてInstallに渡され、ServiceProcessInstaller インスタンスとして継続的に更新され、各ServiceInstaller インスタンスがユーティリティによってインストールされます。 通常、コードでこの状態情報を明示的に変更する必要があります。

プロジェクト インストール クラスに関連付けられている ServiceProcessInstaller は、プロジェクト内のすべての ServiceInstaller インスタンスに共通する情報をインストールします。 このサービスにインストール プロジェクト内の他のサービスと分離するものがある場合は、そのサービス固有の情報がこの方法によってインストールされます。

サービスをインストールするには、 Installer クラスから継承するプロジェクト インストーラー クラスを作成し、クラスの RunInstallerAttribute 属性を true に設定します。 プロジェクト内で、サービス アプリケーションごとに 1 つの ServiceProcessInstaller インスタンスを作成し、アプリケーション内のサービスごとに 1 つの ServiceInstaller インスタンスを作成します。 プロジェクト インストーラー クラス コンストラクター内で、 ServiceProcessInstaller インスタンスと ServiceInstaller インスタンスを使用してサービスのインストール プロパティを設定し、インスタンスを Installers コレクションに追加します。

Note

インストーラー インスタンスを追加するには、コンストラクターを使用することをお勧めします。ただし、Installers メソッドのInstall コレクションに追加する必要がある場合は、Uninstall メソッドでコレクションに対して同じ追加を実行してください。

Installer クラスから派生するすべてのクラスについて、Installers コレクションの状態は、Installメソッドと Uninstall メソッドで同じである必要があります。 ただし、カスタム インストーラー クラス コンストラクターのInstallers コレクションにインストーラー インスタンスを追加すると、InstallメソッドとUninstall メソッド全体でコレクションのメンテナンスを回避できます。

適用対象

こちらもご覧ください