一、准備條件:安裝好的VS2010
二、創建window service項目,取項目名為WinService_Test
三、在新建好的項目中,找到Service1.cs,右擊-->View Code(查看源代碼)。在源代碼中,OnStart方法是在服務啟動時執行的,可以在這里編寫服務要執行的業務邏輯代碼;OnStop方法是在服務停止時執行的,一般在這里編寫終止服務線程或停止業務邏輯的代碼等。
四、添加服務安裝程序ProjectInstaller。
1、在Service1.cs的設計界面(可雙擊Service1.cs進入此界面),右擊-->Add Installer(添加安裝程序);
2、完成第一步,默認項目添加了ProjectInstaller.cs程序;
3、雙擊編輯文件ProjectInstaller.Designer.cs,更改下面代碼:
1)在InitializeComponent方法中,添加代碼
this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem;
2)在InitializeComponent方法中,修改this.serviceInstaller1.ServiceName為服務類的名稱,默認為Service1,如果項目的服務類的名稱更改了,注意一定要修改這個值,如:服務類的名稱更為WinServiceTest后,對應修改代碼如下:
this.serviceInstaller1.ServiceName = "WinServiceTest"; //服務類的名稱
this.serviceInstaller1.DisplayName = "WinServiceTest"; //安裝后,在window服務管理里顯示的名稱
this.serviceInstaller1.Description = "Window測試服務!"; //安裝后,在window服務管理里顯示的描述
五、添加window service安裝的批處理命令
1)在項目添加一個文本文件,更名為install.bat,編輯文件的內容如下:
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe WinService_Test.exe
Net Start Service1
2)在項目添加一個文本文件,更名為uninstall.bat,編輯文件的內容如下:
Net Start Service1
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /u WinService_Test.exe
補充說明:
- 上面黃色字體為項目的名稱,也就是生成后的文件名稱;紅色字體為服務的名稱,也就是服務類的名稱。
- 另外,文件install.bat的屬性里“Copy to Output Directory”默認為“Do not copy”,編譯后,在debug的文件夾里找不到install.bat的,要更改為“Copy always”或者“Copy if newer”才能出現的。uninstall.bat也跟install.bat一樣的。
六、實際安裝。
1)編譯成功后,在debug文件夾中,雙擊install.bat完成安裝;
2)安裝成功后,在window的服務里,可看到此服務,如沒更改服務類的名稱,這里可看到服務Service1;
3)雙擊uninstall.bat可卸載此服務。
總結,通過上面六個步驟,實現window服務從創建到安裝、卸載整個過程。