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