使用Windows兼容包创建.net核心Windows服务

时间:2018-04-25 22:18:34

标签: c# .net-core windows-services

我需要在Windows机器上创建Windows服务,但系统只有.NET Core 2.0。 Windows兼容包现在支持System.ServiceProcess.ServiceBase,因此这应该是可能的。我已经为WCP安装了NuGet包,但是如何开始开发服务却不知所措。

在.NET Framework中,有一个用于创建初始服务框架的向导,我已经使用过。但是,我不确定如何(1)使用WCP从头开始创建新的.net核心服务,或者(2)获取.net Framework服务并将其转换为使用.net核心 - 没有在Project属性中重新定位的方法。

我尝试通过编辑appconfig来引用netcoreapp2.0来强制重新定位,但该项目仍然引用.net框架程序集。

该软件包是Microsoft.Windows.Compatibility -Version 2.0.0-preview2-26406-04

我对此有点新意,并希望得到任何建议。

1 个答案:

答案 0 :(得分:0)

很幸运,我最近在just this subject上写了一篇博客文章。

基本上:

  1. 将应用程序创建为.Net Core控制台应用程序。

  2. 安装Windows兼容包(NotificationCenter.default.addObserver(vc1, selector: #selector(vc1.handleEventDataChange), name: .eventDataChanged, object: nil) )。

  3. 通过从ServiceBase(Install-Package Microsoft.Windows.Compatibility)继承来创建服务。

  4. 在控制台应用程序的Main方法中,只需实例化服务并调用运行class TestSevice : ServiceBase)。

  5. 要安装它,请使用sc.exe。