ServiceBaseは、サービスプログラムの基底となるクラス・・・。
ServiceBase クラス (System.ServiceProcess)
簡単なサービスを作成する・・・。

空のプロジェクトで、

MainClass.csを追加・・・。

参照でSystem.ServiceProcessを追加・・・。

イベントログを出力するので、Systemも追加・・・。
MainClassはServiceBaseを基底クラスとする・・・。
Mainメソッドでは、スタティックなServiceBase.RunメソッドにMainClassインスタンスをnewで生成して渡す・・・。
その前後にイベントログを出力・・・。
サービス開始時OnStartでもイベントログ出力・・・。
サービス停止時OnStopでもイベントログ出力・・・。

コマンドプロンプトを管理者権限で起動・・・。
C:\Project\Cloud\github.com\Sample\dotnet\ServiceBase\ServiceBase\src\ServiceBas e_\ServiceBase_\bin\Debug>sc create ServiceBase_ binPath= C:\Project\Cloud\githu b.com\Sample\dotnet\ServiceBase\ServiceBase\src\ServiceBase_\ServiceBase_\bin\De bug\ServiceBase_.exe [SC] CreateService SUCCESS
sc createコマンドでServiceBase_サービスを追加・・・。
管理ツールのサービスを見ると、

追加されてる・・・。
開始を押すと、

となり、イベントログで、

Run before

OnStart

これは基底クラスServiceBaseにある開始時にイベントログを出力するかのオプションがtrueになっているからかも・・・。

今度は停止してみる・・・。

止まったので、

OnStop

ServiceBaseのやつ・・・。

Run after
C:\Project\Cloud\github.com\Sample\dotnet\ServiceBase\ServiceBase\src\ServiceBas e_\ServiceBase_\bin\Debug>sc delete ServiceBase_ [SC] DeleteService SUCCESS
とすると、

削除されてる・・・。
Sample/dotnet/ServiceBase/ServiceBase/src/ServiceBase_ at master · bg1bgst333/Sample · GitHub