日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

一个NET8 AOT编译的辅助项目,让你的任何可执行应用快速部署为服务

發布時間:2023/11/26 windows 47 coder
生活随笔 收集整理的這篇文章主要介紹了 一个NET8 AOT编译的辅助项目,让你的任何可执行应用快速部署为服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??不知道大家有沒有和小編一樣,很多時候想將自己的一些應用轉為服務運行,比如一些控制臺應用或者.NET Core應用,但是又不想重新編碼,把他們轉為服務,本文將給大家提供些我使用過的方法,并提供一個基于NET8 AOT編譯的輔助項目的封裝工具構建方法,快來看看吧。點我?Star

我的快速開發框架項目

先介紹下我的基于.NET 8的快速開發框架Simple Framework,旨在簡化開發流程,減少學習成本。框架特點包括基于.NET 8、少用第三方庫、基本授權鑒權、CRUD實現和后臺管理前端。規劃使用了NLog、Redis、Json庫等,并支持多數據庫結構。框架包含基礎庫、Web項目擴展庫、EFCore擴展庫、代碼生成器和定時任務模塊,并提供了一套基于vue2 elementui前端頁面框架,以提高開發效率和靈活性,發布以來收到了很多朋友的喜歡,本文的封裝工具也是朋友的建議下擼出來的,快去看看吧。

把應用封裝為服務的常用方式 WinSW 和 NSSM

WinSW(Windows Service Wrapper)和 NSSM(Non-Sucking Service Manager)都是流行的開源工具,用于將任何可執行文件包裝為Windows服務。
盡管它們的目標相同,但它們在設計、配置和功能方面有所不同。
以下是兩者之間一些核心差異的概述:

  1. 設計理念:
    WinSW 使用XML文件作為服務配置,由.NET框架支持,這意味著它需要.NET環境來運行。
    NSSM 則不依賴.NET框架,它是使用C++編寫的,并且包含了一個用戶友好的GUI進行服務配置。
  2. 配置:
    WinSW 需要一個XML配置文件,其中指定服務的詳細信息,這可能對那些習慣于XML格式的用戶更方便。
    NSSM 提供了一個命令行界面,用于安裝、刪除、啟動和管理服務。它還附帶了一個GUI,允許用戶通過圖形界面配置服務。
  3. 特性和功能:
    WinSW 支持日志記錄、下載、服務失敗操作等。它允許服務自我更新,也支持延遲的自動啟動。
    NSSM 的特點是輕量,易于使用,也支持日志記錄,可以自動重啟失敗的服務,并且能夠處理stdout和stderr輸出。
  4. 易用性:
    NSSM 因其簡單的GUI而受到一些用戶的青睞,允許快速安裝和配置服務。
    WinSW 需要用戶編輯XML文件,這可能對一些用戶來說不那么直觀,但對于熟悉該格式的用戶則非常有用。
  5. 依賴性:
    WinSW 依賴于.NET環境,所以在沒有安裝.NET的系統上不能使用。
    NSSM 沒有額外的依賴,它可以在所有現代Windows系統上直接運行。
  6. 社區和支持:
    WinSW 和 NSSM 都有活躍的社區,但他們的更新頻率和社區支持可能會有所不同。
    在選擇使用哪一個時,你需要根據你的特定需求、你的技術偏好以及你所在的環境來決定。例如,如果你已經在使用.NET環境,并且希望有一個詳細的配置文件,那么WinSW可能是更好的選擇。而如果你希望在沒有.NET環境的系統上運行,或者你喜歡使用圖形界面進行配置,那么NSSM可能更適合你。

NSSM注冊服務后,后臺會常駐一個NSSM的程序文件,所以我選擇了使用WinSW來做這個輔助工具。

封裝構想

查對了WinSW的文檔,他是基于xml的配置來執行不同的命令,來處理不同的服務操作,那我們可以寫個程序,來封裝xml配置文件的生成和指令的執行,這樣一來你處理你的服務應用就只需要雙擊你的輔助程序,便可以方便的啟停你的應用程序,.NET8剛好可以做AOT編譯的項目,那就用它來做這個工具吧,也不用安裝環境了,搞起。

項目構建

新建一個控制臺應用,基于.NET8 啟用AOT編譯

  1. 建一個model,來存儲轉為xml的配置文件數據

  2. 把方法都封裝到一個Helper類中
    封裝常用的 WinSW 命令

  3. 封裝檢查、讀取、生成配置文件的方法

  4. 封裝啟動CMD的方法

  5. 最后封裝指令菜單

看看運行效果

我的API項目執行文件是 Simple.WebHost.exe

  1. 雙擊我的輔助項目編譯文件 Simple.RunService.exe 配置指令

查看1. 生成的xml文檔

小試一刀1. ,注冊并啟動服務

簡單吧,簡單的封裝,配置一次,以后更新啥的,直接雙擊運行輔助項目輸入個數字就搞定了

看看編譯的輔助工具的文件 2M還行吧,不用安裝環境哦 注意X64環境使用哦

點我?Star

總結

以上是生活随笔為你收集整理的一个NET8 AOT编译的辅助项目,让你的任何可执行应用快速部署为服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。