インストール時にWindowsサービスを自動的に開始する 質問する

インストール時にWindowsサービスを自動的に開始する 質問する

InstallUtil.exe を使用してインストールした Windows サービスがあります。スタートアップ方法を自動に設定しているにもかかわらず、インストール時にサービスが起動しないため、手動でサービスを開いて開始をクリックする必要があります。コマンド ラインまたはサービスのコードを使用してサービスを起動する方法はありますか?

ベストアンサー1

Installer クラスに AfterInstall イベントのハンドラーを追加します。その後、イベント ハンドラーで ServiceController を呼び出してサービスを開始できます。

using System.ServiceProcess;
public ServiceInstaller()
{
    //... Installer code here
    this.AfterInstall += new InstallEventHandler(ServiceInstaller_AfterInstall);
}

void ServiceInstaller_AfterInstall(object sender, InstallEventArgs e)
{
    ServiceInstaller serviceInstaller = (ServiceInstaller)sender;

    using (ServiceController sc = new ServiceController(serviceInstaller.ServiceName))
    {
             sc.Start();
    }
}

これで、インストーラーで InstallUtil を実行すると、サービスが自動的にインストールされて起動されます。

おすすめ記事