建立的Service:WinServiceDemo
1、建立Windows Service 項目,如MyWinService,編寫代碼實現你要實現的功能。如下
view plaincopy to clipboardprint?
string fileName = @"e:\test\WinService.log";
protected override void OnStart(string[] args)
{
// TODO: 在此處添加代碼以啟動服務。
File.AppendAllText(fileName, "WinServiceDemo已經啟動", Encoding.Default);
}
protected override void OnStop()
{
// TODO: 在此處添加代碼以執行停止服務所需的關閉操作。
File.AppendAllText(fileName, "WinServiceDemo已經停止", Encoding.Default);
}
2、右鍵WinServiceDemo設計頁面空白處,選擇“屬性”,設置ServiceName屬性為“WinServiceDemo”,
3、右鍵WinServiceDemo設計頁面空白處,選擇“添加安裝程式”,轉到“ProjectInstaller 設計”視圖,選中“ServiceInstaller1”,設定其ServiceName屬性為“WinServiceDemo”,註:必須與第二步中設定的ServiceName一樣,否則,打包安裝後服務無法正常啟動。其餘的屬性,如Description,displayName,StartType自己看著辦。若該項目中有多個服務,需要將Modifiers設定為Public,否則打包安裝後服務同樣無法正常啟動。
按右鍵“ProjectInstaller 設計”視圖下的“ServicepProcessInstaller1”,選擇屬性,咋此可以設定其啟動使用者Account:LocalSystem
5、若該項目中有多個服務,如WinServiceDemo和WinService2,還需要修改Programs,
view plaincopy to clipboardprint?
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new WinServiceDemo() ,
new WinService2()
};
ServiceBase.Run(ServicesToRun);
}
6、添加部署項目,如,WindowsServiceSetUp
7、右鍵WindowsServiceSetUp項目,添加--項目輸出,將項目選擇為要部署的Windows 服務主專案,如“WinServiceDemo”,選擇“主輸出”,
8、右鍵WindowsServiceSetUp項目,視圖(view)---自訂動作(Custom Actions),按右鍵自訂動作視窗的“自訂動作”,“添加自訂動作”,選擇“應用程式檔案夾”----“主輸出來自......(活動)”,
9、編譯產生便可