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 を実行すると、サービスが自動的にインストールされて起動されます。