ServiceInstaller.Install(IDictionary) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
サービス アプリケーション情報をレジストリに書き込むことで、サービスをインストールします。 この方法は、適切な方法を自動的に処理するインストール ツールで使用することを目的としています。
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 メソッド全体でコレクションのメンテナンスを回避できます。