Windows .NET Core 服务

Windows Service with .NET Core

有没有办法用 .NET Core 开发 windows 服务(能够在启动时启动等...)?

我找到的所有教程和说明都使用了 System.ServiceProcess.ServiceBase,由于某种原因在 Visual Studio 2015 年无法找到和添加?

我也尽量避免使用像 SrvStart 这样的第三方 tools/libraries。像 Topshelf 这样的东西是可以接受的,但似乎不适用于 .NET 核心。

如果服务能够在 windows 和 linux 下 运行 就好了。

有什么想法可以实现吗?

我将总结一些选项:

  1. 将您的代码移至 .NET Standard 库,并将其托管在 .NET Framework 应用程序中,以便您可以使用 ServiceBase。这当然需要在目标机器上安装 .NET Framework
  2. 使用 NSSM(Non-Sucking Service Manager)管理 .NET Core 控制台应用程序(它具有 public 域许可证)
  3. 使用 Windows API 调用挂接到 Windows 服务方法。这是 DotNetCore.WindowsService and dotnet-win32-service 所采用的方法(均获得 MIT 许可)