.NET CoreでWindowsサービスを作る
今回は、.NET CoreでWindowsのサービスアプリを作って見たいと思います。
前提
サービスの雛形を作る
- 以下コマンドで雛形が生成されます
$ dotnet new worker -o 任意のプロジェクト名
Windowsでサービス起動させるために一部修正する
- packageの追加
$ dotnet add .\<アプリ名>.csproj package Microsoft.Extensions.Hosting.WindowsServices
- コード修正
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddHostedService<Worker>(); }).UseWindowsService(); //Windowsで実行する場合はここを追加する必要がある
プロジェクトのビルド
$ dotnet publish -o 任意のフォルダ名
サービス登録
- パスは絶対パスで指定してください
- Project.exeはビルドで指定したフォルダ内に生成されています
$ sc.exe create <サービス名> binPath=<Project.exe>
起動
$ sc.exe start <サービス名>
確認は、Windowsのサービス管理画面等で行ってください。