c# 编写windows 服务,并制作安装包
對服務的認識有很多個階段。
第一階段:當時還在用c++,知道在一個進程里while(True){},然后里面做很多很多事情,這就叫做服務了,界面可能當時還用Console控制臺程序。
第二階段:知道了服務要在后臺執行,一般不會有界面顯示,并且開機自啟動,于是隱藏Console控制臺界面,并且通過使用SC CREATE 將exe變為服務,并且達到開機自啟動的目的。這時候還是c++ 階段。
第三階段:因項目需求接觸c#,發現有個叫項目模板專門制作windows 服務,嘗試了下,感覺還不錯,省事了許多。通過命令行安裝服務。
第四階段:發現了一個好東西可以制作安裝包,省去了敲命令行的痛苦,對實施人員來說肯定是個福音
一,編寫windwos 服務
c# 編寫windows 服務還算是相當簡單的,至少比c++ 要簡單。
1,新建項目windows 服務。填寫服務名稱TestService
創建成功,項目界面是這樣的
2,編寫服務代碼,右鍵TestService,查看代碼OnStart,編寫啟動代碼 。OnStop編寫停止代碼
namespace TestService
{
public partial class TestService : ServiceBase
{
FileStream fs = null;
StreamWriter sw = null;
Thread td = null;
public TestService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
td = new Thread(WorkThread);
td.Start();
}
protected void WorkThread()
{
fs = new FileStream(@"f://ggg.txt", FileMode.OpenOrCreate, FileAccess.Write);
sw = new StreamWriter(fs);
while (true)
{
sw.WriteLine(DateTime.Now.ToString());
sw.Flush();
Thread.Sleep(2000);
}
}
protected override void OnStop()
{
if(td != null)
{
td.Abort();
}
sw.Close();
fs.Close();
}
}
}
3,雙擊TestService.cs,在右邊空白處右鍵添加安裝程序 ,會出現這樣兩個東西,點擊serviceInstall1 修改服務的名字,以及啟動類型。點擊serviceProcessinstall1,改變Account 為LocalSystem.
4,OK 大功告成,一個簡單的服務已經完成了。接下來,我們測試該服務是否能夠正常跑。右鍵管理員打開命令提示框,數據 installutil TestService(服務名稱) 進行安裝服務,順利的話,會有下面的提示完成的字符。這時會看到F盤忽悠ggg.txt 在寫文件。
二、制作安裝包,
開始制作安裝包,我們不能每次把這個服務拿出去都用命令行去安裝,不太友好。右鍵解決方案,在其他類型點擊安裝部署,如果發現沒有安裝,就先去安裝這個工具,很簡單,VSI_bundle.exe 只有5M大小。
在應用程序文件夾上右鍵添加項目輸出。
右鍵工程-》視圖-》添加自定義操作-》右鍵添加自定義操作
這個時候,重新編譯Setup 工程就會生成setup.exe,該exe 就是我們的服務安裝包。到此,整個服務編寫打包就已經完成。
good luck
總結
以上是生活随笔為你收集整理的c# 编写windows 服务,并制作安装包的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 备份到云端,准备好了吗?
- 下一篇: 【CSON原创】 图片放大器效果发布