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