ScottTxの答えに追加するために、Microsoftの方法でサービスを開始する場合の実際のコードを次に示します(つまり、セットアッププロジェクトを使用するなど)。
(VB.netコードを失礼しますが、これは私が行き詰まっているものです)
Private Sub ServiceInstaller1_AfterInstall(ByVal sender As System.Object, ByVal e As System.Configuration.Install.InstallEventArgs) Handles ServiceInstaller1.AfterInstall
Dim sc As New ServiceController()
sc.ServiceName = ServiceInstaller1.ServiceName
If sc.Status = ServiceControllerStatus.Stopped Then
Try
' Start the service, and wait until its status is "Running".
sc.Start()
sc.WaitForStatus(ServiceControllerStatus.Running)
' TODO: log status of service here: sc.Status
Catch ex As Exception
' TODO: log an error here: "Could not start service: ex.Message"
Throw
End Try
End If
End Sub
上記のイベントハンドラーを作成するには、2つのコントロールがあるProjectInstallerデザイナーに移動します。ServiceInstaller1コントロールをクリックします。イベントの下のプロパティウィンドウに移動すると、AfterInstallイベントが見つかります。
注:上記のコードをServiceProcessInstaller1のAfterInstallイベントの下に配置しないでください。経験上、うまくいきません。:)