Topshelf 是一个使用.NET构建Windows服务的框架。它极大的简化服务创建与部署过程,它支持将控制台应用程序部署为服务。开发过 Windows 服务程序的同学应该都比较清楚,代码调试和服务部署上相对来说都过于麻烦,当我第一次接触 Topshelf 的时候,发现它是如此简单
Topshelf 安装
通过 NuGet 安装 Topshelf 包
1
| Install-Package Topshelf
|
Topshelf 配置
Topshelf 关键配置在 Main 方法内,更多的配置建议阅读一下官方文档,没什么特别复杂的地方,相信都能看懂
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| class Program { static void Main(string[] args) { HostFactory.Run(x => { x.Service<SchedulerService>(s => { s.ConstructUsing(name => new SchedulerService()); s.WhenStarted(tc => tc.Start()); s.WhenStopped(tc => tc.Stop()); }); x.RunAsLocalSystem(); x.SetDescription("调度服务"); x.SetDisplayName("SchedulerService"); x.SetServiceName("SchedulerService"); }); } }
public class SchedulerService { IScheduler scheduler; ISchedulerFactory factory; public SchedulerService() { factory = new StdSchedulerFactory(); scheduler = factory.GetScheduler(); } public void Start() { scheduler.Start(); } public void Stop() { scheduler.Shutdown(true); } }
|
安装服务
通过以上配置,确保程序集生成成功后,进入 bin\Debug 目录下,执行 install 命令,一个 Windows 服务就诞生了
卸载服务
卸载和启动的命令保持一致,只需要把 install 改成 uninstall
参考链接
Topshelf
Topshelf-Github