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

标签 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 Core - 没有办法在项目属性中重新定位。

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

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

我对此有点陌生,如果有任何建议,我将不胜感激。

最佳答案

幸运的是,我最近在 just this subject 上写了一篇博文.

基本上:

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

  2. 安装 Windows 兼容包(Install-Package Microsoft.Windows.Compatibility)。

  3. 通过继承自 ServiceBase(class TestSevice : ServiceBase)来创建您的服务。

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

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

关于c# - 使用 Windows 兼容包创建 .net 核心 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50032118/

相关文章:

c# - 显示页面几秒钟并导航到另一个页面

docker - 安装 dotnet 核心工具 Dockerfile

c# - .NET Core SDK/运行时和 NuGet 包版本是否必须匹配?

c# - 窗口服务和 C# 设计模式问题

c# - 将 Visual Studio 调试器附加到 Windows 服务—— "attach"变灰

c# - 在低于正常优先级的 Windows 服务中停止 Parallel.ForEach

c# - 按钮列的 DataGridView 图像

c# - HTML5 Canvas toDataURL ("image/png") 适用于一些绘画,有些则不行,不知道为什么

c# - 为多个实例保存 PlayerPrefs

c# - 如何为.NET Core项目指定程序集版本?