.net下 Windows Service 部署

创建的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、编译生成便可

你可能感兴趣的:(windows)