Windows services 具有.NET内核的Windows服务

Windows services 具有.NET内核的Windows服务,windows-services,.net-core,Windows Services,.net Core,有没有办法用.NET内核开发windows服务(能够在启动时启动等) 我找到的所有教程和说明都使用System.ServiceProcess.ServiceBase,但由于某种原因,在Visual Studio 2015中找不到并添加了这些教程和说明 我还尽量避免使用第三方工具/库,如SrvStart。类似Topshelf的东西是可以接受的,但似乎不适用于.NETCore 如果该服务可以在windows和linux下运行,那就太好了 有什么办法可以做到这一点吗?我将总结一些选项: 将代码移动到.

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

我找到的所有教程和说明都使用System.ServiceProcess.ServiceBase,但由于某种原因,在Visual Studio 2015中找不到并添加了这些教程和说明

我还尽量避免使用第三方工具/库,如SrvStart。类似Topshelf的东西是可以接受的,但似乎不适用于.NETCore

如果该服务可以在windows和linux下运行,那就太好了


有什么办法可以做到这一点吗?

我将总结一些选项:

  • 将代码移动到.NET标准库中,并将其托管在.NET Framework应用程序中,这样您就可以使用
    ServiceBase
    。这当然需要在目标机器上安装.NET Framework
  • 使用(非吸吮式服务管理器)管理.NET核心控制台应用程序(它具有公共域许可证)
  • 使用Windows API调用连接到Windows服务方法。这是and采取的方法(两者都是MIT许可的)

  • 我将总结一些选项:

  • 将代码移动到.NET标准库中,并将其托管在.NET Framework应用程序中,这样您就可以使用
    ServiceBase
    。这当然需要在目标机器上安装.NET Framework
  • 使用(非吸吮式服务管理器)管理.NET核心控制台应用程序(它具有公共域许可证)
  • 使用Windows API调用连接到Windows服务方法。这是and采取的方法(两者都是MIT许可的)

  • 你可以使用两种不同的东西。谢谢你提供的信息。虽然我的目标是成为一个后台工作人员而不是一个托管的web服务,但我已经创建了一个库,可以为您简化这个过程。你可以在这里找到它。希望你会发现它有用。有两种不同的东西你可以使用。谢谢你提供的信息。虽然我的目标是成为一个后台工作人员而不是一个托管的web服务,但我已经创建了一个库,可以为您简化这个过程。你可以在这里找到它。希望您会发现它有用。我使用了PeterKottas DotNetCore.WindowsService,并对此感到满意。@Cocowalla:这不仅需要安装.NET Framwork,还需要安装特定最低版本的.NET Framwork(因为NetStandard不适用于.NET2或.NET 4)我想你指的是我的第一个选择吧?是的,如果您想要良好的兼容性,它至少需要4.6.2。有人还在使用.NET2.0吗@Cocowalla:是的,我的公司xD.since.Net Core 3:我使用了PeterKottas DotNetCore.WindowsService,并对此感到满意。@Cocowalla:这不仅需要安装.Net Framwork,还需要安装特定最低版本的.Net Framwork(因为NetStandard不适用于.NET2或.Net 4)我想你指的是我的第一个选择吧?是的,如果您想要良好的兼容性,它至少需要4.6.2。有人还在使用.NET2.0吗@科科瓦拉:是的,我的公司xD.since.Net Core 3: