C#创建windows服务程序,并制作windows服务安装包。
2015-09-01 10:20
579 查看
首先创建一个windows服务:
然后添加安装程序:
点击右键,选择添加安装程序。
设置服务的属性值:
选择serviceInstaller1。
将ServiceName值改成与自己的项目名称相同的值。
将StartType(启动方式)改为Automatic(开机自启)。
如果DispalyName没有设置,那么默认为ServiceName。
选择serviceProcessInstaller1。
将属性值中的Account值改为LocalSystem。
编写代码:
可以将自己编写测试成功的控制台程序代码移植到该程序中。
然后在Service1.cs文件中OnStart方法中添加一个定时器或者开启一个线程,用于服务开启时执行你的方法。
在OnStart和OnStop方法中可以添加日志内容。
重新生成项目。
逻辑部分完成后,有两种方式安装windows服务:直接安装,制作安装包进行安装。
1、直接安装:
以管理员身份运行cmd。
切换目录到C:\Windows\Microsoft.NET\Framework\v4.0.30319
安装服务
InstallUtil.exe C:\Users\scongwu\Desktop\备份数据库\MySQLBackupService\bin\Debug\MySQLBackupService.exe (MySQLBackupService.exe所在目录)
安装成功,开启服务:
删除服务
2、制作安装包:
在本解决方案中添加安装部署项目
选择安装项目
添加之后,如下图:
应用程序文件夹添加项目输出:
选择MySQLBakcupService作为主输出:
创建自定义操作:
MysqlSetup右键->视图->自定义操作。
添加自定义操作:
选择应用程序文件夹中主输出项目:
查看MySQLBackupService的属性:
设置启动对象:
分别重新生成MySQLBackupService和MysqlSetup项目,重新生成成功后,在MysqlSetup相应目录下找到
MysqlSetup.msi.然后双击它,完成安装。
安装完成后,在服务中开启该服务。
测试服务
经测试,服务可以正常使用。
然后添加安装程序:
点击右键,选择添加安装程序。
设置服务的属性值:
选择serviceInstaller1。
将ServiceName值改成与自己的项目名称相同的值。
将StartType(启动方式)改为Automatic(开机自启)。
如果DispalyName没有设置,那么默认为ServiceName。
选择serviceProcessInstaller1。
将属性值中的Account值改为LocalSystem。
编写代码:
可以将自己编写测试成功的控制台程序代码移植到该程序中。
然后在Service1.cs文件中OnStart方法中添加一个定时器或者开启一个线程,用于服务开启时执行你的方法。
在OnStart和OnStop方法中可以添加日志内容。
重新生成项目。
逻辑部分完成后,有两种方式安装windows服务:直接安装,制作安装包进行安装。
1、直接安装:
以管理员身份运行cmd。
切换目录到C:\Windows\Microsoft.NET\Framework\v4.0.30319
安装服务
InstallUtil.exe C:\Users\scongwu\Desktop\备份数据库\MySQLBackupService\bin\Debug\MySQLBackupService.exe (MySQLBackupService.exe所在目录)
安装成功,开启服务:
删除服务
2、制作安装包:
在本解决方案中添加安装部署项目
选择安装项目
添加之后,如下图:
应用程序文件夹添加项目输出:
选择MySQLBakcupService作为主输出:
创建自定义操作:
MysqlSetup右键->视图->自定义操作。
添加自定义操作:
选择应用程序文件夹中主输出项目:
查看MySQLBackupService的属性:
设置启动对象:
分别重新生成MySQLBackupService和MysqlSetup项目,重新生成成功后,在MysqlSetup相应目录下找到
MysqlSetup.msi.然后双击它,完成安装。
安装完成后,在服务中开启该服务。
测试服务
经测试,服务可以正常使用。
相关文章推荐
- 预定义的类型“Microsoft.CSharp.RuntimeBinder.Binder”未定义或未导入
- C#延时
- C# 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler”节
- C#时间相关
- C#中序列化实现深拷贝,实现DataGridView初始化刷新
- C#命名规则小总结
- c#递归遍历指定文件夹内的所有文件(包含子文件夹)
- C# Chart 控件快速使用
- c# send mail
- C#语法糖
- C# 画图
- 浅析C#中抽象类和接口的区别
- 浅析C#中抽象类和接口的区别
- C# WinForm通过WebClient实现文件上传下载 (附源码) 分类: C#.NET
- 浅析C#中接口的重要性
- 浅析C#中接口的重要性
- C#中隐藏的15大功能
- WIN8-Metro风格开发---入门篇(C#补全计划)
- C#中的空值的判断
- C#基础------文件读写操作案例