方法 : サービス アプリケーションにインストーラーを追加する
Visual Studio には、サービス アプリケーションに関連付けられたリソースをインストールできるインストール コンポーネントが組み込まれています。 インストール コンポーネントは、サービスをインストール先システムに登録し、サービス コントロール マネージャーにサービスの存在を知らせます。 サービス アプリケーションを作成するときに、[プロパティ] ウィンドウでリンクを選択して、適切なインストーラーをプロジェクトに自動的に追加できます。
注意
サービスのプロパティ値は、サービス クラスからインストーラー クラスにコピーされます。 サービス クラスのプロパティ値を更新しても、インストーラーのプロパティ値は更新されません。
インストーラーをプロジェクトに追加すると、新しいクラス (既定の名前は ProjectInstaller) がプロジェクトに作成され、そのクラス内にインストール コンポーネントのインスタンスが作成されます。 このクラスは、プロジェクトで必要なすべてのインストール コンポーネントの核になります。 たとえば、2 番目のサービスをアプリケーションに追加し、[インストーラーの追加] リンクをクリックしても、2 番目のインストーラー クラスは作成されません。代わりに、2 番目のサービスに必要な追加のインストール コンポーネントが、既存のクラスに追加されます。
サービスを正しくインストールするために、特別なコードをインストーラーに追加する必要はありません。 ただし、インストール プロセスに特殊な機能を追加する場合は、インストーラーの変更が必要になることもあります。
アプリケーションにインストーラーを追加した後、次の手順として、コンパイルされたプロジェクト ファイルをインストールし、サービスのインストールに必要なインストーラーを実行するセットアップ プログラムを作成します。 完全なセットアップ プロジェクトを作成するには、サービス プロジェクトの出力をセットアップ プロジェクトに追加し、サービスをインストールするカスタム処理を追加する必要があります。 セットアップ プロジェクトの詳細については、「セットアップ/配置プロジェクト」を参照してください。 カスタム動作の詳細については、「チュートリアル : カスタム動作の作成」を参照してください。
注意
実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。 設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。 詳細については、「設定の操作」を参照してください。
サービス アプリケーションにインストーラーを追加するには
ソリューション エクスプローラーで、インストール コンポーネントを追加するサービスをデザイン ビューに表示します。
デザイナーの背景をクリックして、サービスの内容ではなくサービス自体を選択します。
デザイナーにフォーカスを置いた状態で右クリックし、[インストーラーの追加] をクリックします。
新しいクラスの ProjectInstaller、および ServiceProcessInstaller と ServiceInstaller の 2 つのインストール コンポーネントが、プロジェクトに追加されます。また、サービスのプロパティ値がこれらのコンポーネントにコピーされます。
[ServiceInstaller] コンポーネントをクリックし、ServiceName プロパティがサービス自体の ServiceName プロパティと同じ値に設定されているかどうかを確認します。
サービスの起動方法を決定するには、[ServiceInstaller] コンポーネントをクリックし、StartType プロパティに適切な値を設定します。
値
結果
インストール後に手動でサービスを起動する必要があります。 詳細については、「方法 : サービスを開始する」を参照してください。
コンピューターを再起動すると、サービスが自動的に起動します。
サービスは起動できません。
サービスが実行されるセキュリティ コンテキストを決定するには、[ServiceProcessInstaller] コンポーネントをクリックし、適切なプロパティ値を設定します。 詳細については、「方法 : サービスのセキュリティ コンテキストを指定する」を参照してください。
カスタム処理の実行が必要なメソッドをオーバーライドします。
プロジェクトに作成するサービスごとに、手順 1 ~ 7 を実行します。
注意
プロジェクトに作成するすべてのサービスについて、ServiceInstaller コンポーネントをプロジェクトの ProjectInstaller クラスに追加する必要があります。 手順 3 で追加した ServiceProcessInstaller コンポーネントは、プロジェクトのすべてのサービス インストーラーに適用されます。
セットアップ プロジェクトとカスタム アクションを作成し、サービスの配置とインストールを行います。 セットアップ プロジェクトの詳細については、「セットアップ/配置プロジェクト」を参照してください。 カスタム動作の詳細については、「チュートリアル : カスタム動作の作成」を参照してください。