1、实测环境

vs2019 Net6   Asp.Net Core WebApi、控制台应用程序均安装成功。

2、代码处理

1、程序引用Nuget:Microsoft.Extensions.Hosting.WindowsServices 

2、打开 Program.cs ,在Host Create 后新增 .UseWindowsService();



1  public static IHostBuilder CreateHostBuilder(string[] args) =>
2 Host.CreateDefaultBuilder(args)
3 .ConfigureWebHostDefaults(webBuilder =>
4 {
5 webBuilder.UseStartup<Startup>();
6 })
7 .UseWindowsService();


3、通过sc.exe制作安装程序

3.1 安装并启动服务。一定要以管理员身份运行



1 cd C:\Windows\System32\
2 set serviceName=服务名称
3
4 set serviceFilePath=程序路径 ::D:/webapi/webapi.exe
5 set serviceDescription=服务描述
6
7 sc create %serviceName% BinPath=%serviceFilePath% ::创建服务
8 sc config %serviceName% start=auto ::改变服务的启动方式 手动/自动/禁用(demand/auto/disabled )
9 sc description %serviceName%  %serviceDescription% ::添加描述
10 sc start  %serviceName%  ::启动服务
11 pause


NetCore WebApi和控制台程序 发布到Windows服务。_启动服务

成功之后在windows服务中就能看到了

NetCore WebApi和控制台程序 发布到Windows服务。_WebApi_02

3.2停止卸载服务



1 cd C:\Windows\System32\
2 set serviceName=服务名称
3
4 sc stop %serviceName% ::停止服务
5 sc delete %serviceName% ::删除服务
6 pause