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