C#创建Windows服务与服务的安装、卸载

一、使用C#创建Windows service步骤:
1、文件->新建->项目:选择Windows服务,修改项目名称和位置,然后点击"确定":

2、在默认生成的服务Service1设计界面上右键,选择“属性”,打开属性面板

3、在打开的属性面板中,修改常用属性:
- Name:后台代码类的名称。
- AutoLog:设为true,自动将事件写入到Windows的事件日志中,可以在事件查看器中查看日志
- CanPansuAndContinue:设为True,表示服务可以暂停和继续

4、添加服务安装程序:在Service1的设计界面点右键,选择“添加安装程序”

5、在生成的“ProjectInstaller设计界面”修改属性
5.1 选中serviceProcessInstaller1点右键,选择“属性”,打开serviceProcessInstaller1的属性面板:
Account:指示用来运行此服务的账户类型,默认选择User,修改为高权限的LocalSystem

5.2 选中serviceInstaller1点右键,选择“属性”,打开serviceInstaller1的属性面板
- ServiceName:在Windows服务里面显示的名称
- Description:在Windows服务里面显示的描述信息
- StartType:指示启动此服务的方式和时间 Manual:手动启动 Automatic:自动启动
- DelayedAutoStart:指示服务是否延时启动,默认false,改为True,则表示服务延时启动

6、重新生成解决方案,Windows服务创建完成。
二、安装和卸载Windows服务
方式一、使用DOS命令行安装:必须以管理员身份运行DOS命令行,否则安装过程中会因为权限的问题导致安装失败。
在命令行下面执行“installutil+生成的可执行文件的路径”的命令进行安装

输入命令以后,按回车,进行安装:

出现此界面表示服务安装成功。在系统服务里面查看新安装的服务:

卸载Windows服务:
在命令行里面输入“installutil /u 可执行文件路径”命令,然后回车
C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil /u F:\练习\Windows服务\WindowsServiceDemo\WindowsServiceDemo\bin\Debug\WindowsServiceDemo.exe

在系统服务里面刷新,找不到刚才的MyFirstService服务了。
方式二:使用批处理文件(.bat)安装服务
1、新建txt文本文件。
2、编辑新建的文本文件:
1 2 3 | %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe F:\练习\Windows服务\WindowsServiceDemo\WindowsServiceDemo\bin\Debug\WindowsServiceDemo.exe pause |
3、保存文件文件,修改文件后缀名为.bat,重命名文本文件:Install.bat。
使用批处理文件(.bat)卸载服务
1、新建txt文本文件。
2、编辑新建的文本文件:
1 2 | %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u F:\练习\Windows服务\WindowsServiceDemo\WindowsServiceDemo\bin\Debug\WindowsServiceDemo.exe pause |
3、保存文件文件,修改文件后缀名为.bat,重命名文本文件:Uninstall.bat。
注意:执行批处理文件都是以管理员身份运行
方式三:使用vs自带的外部工具安装
1、以管理员身份运行visual studio,打开解决方案,选择菜单栏的“工具”->"外部工具",打开外部工具界面:

2、点击添加,添加安装程序
标题:InstallService
命令:C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe
参数:点击“箭头按钮”,选择目标文件名,注意:选择目标文件名以后要加上文件的扩展文件名

初始目录:点击“箭头按钮”,选择目标文件目录

3、最后的InstallService命令应该是下面这样:

4、点击应用、确定按钮,保存配置。
5、点击菜单栏的工具选项,可以看见新添加的"InstallService"命令

6、点击“InstallService”命令,开始安装,输出界面会显示安装信息:

7、至此,服务安装成功,在系统服务界面可以查看到新安装的服务。