使用.NET Core的Windows服务

mon*_*nty 29 windows-services .net-core

有没有办法用.NET Core开发一个Windows服务(能够启动等...)?

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

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

如果服务可以在windows和linux下运行,那将会很棒.

有什么想法我能做到这一点吗?

Coc*_*lla 21

我将总结一些选择:

  1. 将代码移动到.NET标准库中,并将其托管在.NET Framework应用程序中,以便您可以使用ServiceBase.这当然需要在目标机器上安装.NET Framework
  2. 使用NSSM(非吸吮服务管理器)来管理.NET Core控制台应用程序(它具有公共域许可证)
  3. 使用Windows API调用挂钩到Windows服务方法.这是DotNetCore.WindowsServicedotnet-win32-service采用的方法(均为MIT许可)