C#创建Windows服务并安装和卸载
1、创建项目,选择windows 服务。

2、添加一个服务业务处理类JobManager.cs。


3、JobManager.cs类的内容结构如下:
public class JobManager
{
Thread t = null;
public JobManager()
{
//可加载相关的配置参数
}
/// <summary>
/// 任务开始
/// </summary>
public void Start()
{
Tool.WriteLog("开始XXXX任务.....");
t = new Thread(startExe);
t.Start();
}
/// <summary>
/// 任务结束
/// </summary>
public void Stop()
{
try
{
t.Abort();
}
catch (Exception ex)
{
Tool.WriteLog("服务停止失败," + ex.ToString());
}
}
public void startExe()
{
//具体的任务逻辑
}
}
4、在Service1.cs文件中加载JobManager业务处理类。
public partial class Service1 : ServiceBase
{
JobManager jobs = null;
public Service1()
{
InitializeComponent();
InitializeJobs();
}
/// <summary>
/// 初始化任务对象
/// </summary>
protected void InitializeJobs()
{
Tool.WriteLog("XXXX正在初始化...");
try
{
jobs = new JobManager();
}
catch (Exception ex)
{
Tool.WriteLog("XXXX初始化失," + ex.Message);
}
Tool.WriteLog("XXXX初始化成功");
}
protected override void OnStart(string[] args)
{
Tool.WriteLog("XXX服务开始启动...");
try
{
jobs.Start();
}
catch (Exception ex)
{
Tool.WriteLog("XXXX服务启动异常," + ex.Message);
}
Tool.WriteLog("XXXX服务启动完成...");
}
protected override void OnStop()
{
Tool.WriteLog("XXX服务开始停止...");
try
{
jobs.Stop();
}
catch (Exception ex)
{
Tool.WriteLog("XXXX服务停止异常," + ex.Message);
}
Tool.WriteLog("XXXX服务停止完成...");
}
}
5、业务逻辑完成后,双击Service1.cs文件,出现下图。

6、点击鼠标右键,出现菜单,点击添加安装程序。

7、出现安装控件

8、点击第一个控件,右键 选择属性,Account选择LocalSystem.

9、第二个控件,右键属性,设置相关属性

10、Windows服务创建完成,开始生成整个项目。
11、接下来需要把服务器程序添加到windows服务中。装备两个批处理文件Install.bat加载服务,UnInstall.bat卸载服务,把生成好的exe、dll和两个bat文件,放到一个文件夹,拷贝到部署的服务器上。

12、Install.bat内容如下:
@echo 请按任意键开始安装XXXX服务
@echo.
pause
@echo.
@echo 卸载原有服务项
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u D:\程序\WindowsService\WindowsService\bin\Debug\WindowsService.exe
@echo.
@echo 卸载完成,开始安装...
@echo.
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe D:\程序\WindowsService\WindowsService\bin\Debug\WindowsService.exe
Net Start WindowsService
sc config WindowsService start= auto
@echo.
pause
注意:其中WindowsService 为自定义服务名称。

13、UnInstall.bat的内容如下:
@echo 请按任意键开始卸载XXXX服务
@echo.
pause
@echo.
@echo 开始卸载...
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u D:\程序\WindowsService\WindowsService\bin\Debug\WindowsService.exe
@echo.
pause

14、bat文件创建好后,可以运行Install.bat,右键 选择“以管理员身份运行”,在弹出的黑框内按任意键继续。

15、安装成功后,可以在运行中输入services.msc打开服务列表,找到刚刚添加的windows服务。

16、如何需要卸载该服务,可以运行UnInstall.bat,右键 选择“以管理员身份运行”.
