Topshelf 是一個用來部署基於.NET Framework 開發的服務的框架。簡化服務創建於部署過程,並且支持控制檯應用程序部署爲服務。本文基於 .net core 控制檯應用程序部署爲服務(.net Framework 可用)。
第一步:創建名爲 TopshelfDemo 的控制檯應用程序。
第二步:通過 Nuget 安裝 Topshelf 包。
第三步:Toshelf 配置,代碼並不多下面都有註釋。
using System; using Topshelf; namespace TopshelfDemo { class Program { static void Main(string[] args) { try { // 配置和運行宿主服務 HostFactory.Run(x => //1 { x.Service<Service>(s => //2 { // 指定服務類型。這裏設置爲 Service s.ConstructUsing(name => new Service()); //3 // 當服務啓動後執行什麼 s.WhenStarted(tc => tc.Start()); //4 // 當服務停止後執行什麼 s.WhenStopped(tc => tc.Stop()); //5 }); // 服務用本地系統賬號來運行 x.RunAsLocalSystem(); //6 // 服務描述信息 x.SetDescription("我的項目服務"); //7 // 服務顯示名稱 x.SetDisplayName("MyProjectServiceShowName"); //8 // 服務名稱 x.SetServiceName("MyProjectService"); //9 }); } catch (Exception ex) { Console.WriteLine(ex); } } } public class Service { public void Start() { //To do something } public void Stop() { //To do something } } }
第四步:安裝服務
確保項目正常生成,然後通過管理員權限打開 cmd 命令窗口,找到項目所在的 Debug 目錄,輸入命令:TopshelfDemo.exe install。
如果是使用 .net core 的小夥伴你會發現 Debug下壓根沒有 TopshelfDemo.exe ,這不是扯淡呢麼,別急往下看。
由於 .net core 依賴 runtimes 所以我們需要發佈以下程序,並且選擇獨立項目就o k啦。
這時你在布後的路徑下就可以找到 TopshelfDemo.exe 啦。
這時服務就安裝完畢了,我們可以通過 Windows 服務中查看。
刪除服務命令:TopshelfDemo.exe uninstall
也可以通過 sc delete MyProjectService 進行刪除
好了,到這裏就完事兒了,哪裏有問題希望大家猛烈拍磚以便修正~
鏈接: https://pan.baidu.com/s/1bHIQgO6GFahXOtgI3dlNTA
提取碼: thki