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の を使用して、既にインストールされているコンポーネントに関する情報が自動的に保持されます。 パラメーターとして渡Installされたこの状態情報は、インスタンスとしてstateSaverServiceProcessInstaller継続的に更新され、各ServiceInstallerインスタンスはユーティリティによってインストールされます。 通常、コードでこの状態情報を明示的に変更する必要があります。

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

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

注意

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

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

適用対象

こちらもご覧ください