如何使用较新版本的 .NET 处理 windows 服务 c#?

How to handle windows services c# with newer versions of .NET?

...

大家好,

我想用 c# 创建一个 Windows 服务。但是我只能选择其中一个.NET Frameworks:

.NET Framework 2.0
.NET Framework 3.0
.NET Framework 3.5
.NET Framework 4.7.2
.NET Framework 4.8

但我需要的是.NET 6.0。但问题是,.NET 6.0 已经安装好并且可用于控制台应用程序?我有两个版本的控制台应用程序项目。一个有 (.NET Framework),一个没有。但为什么我只有 (.NET Framework) 个服务应用程序项目?

你如何处理服务。您是否将所有应用程序代码写入服务?您是否仅将服务用于 运行 控制台应用程序?

谢谢!

这里有几个例子,但最主要的是,编写一个控制台应用程序和一个托管服务,并在主机构建器的末尾添加 .UseWindowsService()。

https://csharp.christiannagel.com/2019/10/15/windowsservice/ https://docs.microsoft.com/en-us/dotnet/core/extensions/windows-service

public static IHostBuilder CreateHostBuilder(string[] args) =>
  Host.CreateDefaultBuilder(args)
    .ConfigureLogging(
      options => options.AddFilter<EventLogLoggerProvider>(level => level >= LogLevel.Information))
    .ConfigureServices((hostContext, services) =>
    {
      services.AddHostedService<Worker>()
        .Configure<EventLogSettings>(config =>
      {
        config.LogName = "Sample Service";
        config.SourceName = "Sample Service Source";
      });
    })
    .UseWindowsService();