一、什么是Topshelf服务?
二、使用Topshelf服务有什么好处
三、创建Topshelf项目
3.1 在创建的项目文件夹里创建一个引用的目录 ,
引用目录使得未来多人协作开发的时候比较方便,大家把需要引用的第三方类库都放在这个引用文件夹下
3.2 TopShelf.dll插件下载:
https://github.com/topshelf/Topshelf/downloads
TopShelf.dll插件下载后放在引用文件夹里
3.3 添加第三方库TopShelf.dll引用
3.4 引入Topshelf.dll里面的相关代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Topshelf;
namespace KingOfGlory.Host
{
class Program
{
static void Main(string[] args)
{
//Run是一个服务
//StartService是服务启动入口的一个类
HostFactory.Run(x =>
{
x.Service<StartService>(s =>
{
s.ConstructUsing(name => new StartService());
s.WhenStarted((t) => t.Start());//Start时执行类里的Start方法
s.WhenStopped((t) => t.Stop());
});
x.RunAsLocalSystem();//运行的是本地系统的服务
//服务的描述
x.SetDescription("KingOfGlory");
//服务的显示名称
x.SetDisplayName("KingOfGlory");
//服务名称
x.SetServiceName("KingOfGlory");
});
}
}
class StartService
{
public void Start()
{
Console.WriteLine("Starting......");
}
public void Stop()
{
Console.WriteLine("Stoping......");
}
}
}
此时服务已经创建完成
四、找到编译后的项目文件夹
然后找到生成的文件所在文件夹,新建两个批处理文件:一个是注册服务,一个是卸载服务的。
内容如下所示
第一行:在执行批处理文件的时候切换到当前的目录,如果不做切换呢会是在C盘下;
第二行是注册的命令
第三行执行一次启动。
4.2 卸载服务:uninstall.bat
最后所创文件如下
五、将编译后的项目文件注册为Windows服务
开始执行注册的命令
打开控制面板的管理工具(如果没有找到管理工具,用大图标显示)
下面显示注册成功
同样如果执行卸载服务命令