在控制台程序中新增项目——>“Windows服务”
修改名称,我这里叫“Test_WindowsService”
然后在新增的“Windows服务”中按F7修改代码
将原本控制台入口中的代码全部剪切到该OnStart()方法中,该方法会在启动该服务时运行
然后在原本的控制台入口程序中添加如下代码:
static void Main(string[] args)
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new Test_WindowsService() //这里的Test_WindowsService新增的Windows服务
};
ServiceBase.Run(ServicesToRun);
}
然后在新增的Windows服务中右键添加安装程序
在新增的安装程序中会有“serviceProcessInstaller1”和“serviceInstaller1”,修改serviceProcessInstaller1中的Account属性为“LocalSystem”(系统服务级别),根据需求修改serviceInstaller1里面的名称和描述属性:
然后右击生成一下,再去到“C:\Windows\Microsoft.NET\Framework\v4.0.30319”目录下面找到“Installutil.exe”,将此程序复制到项目生成的Debug目录下,在该目录下创建并修改两个txt文件(setup.txt/unsetup.txt),一个为“installutil 这是你的控制台程序名称.exe”,另一个为“installutil 这是你的控制台程序名称.exe /u”,然后修改这两个txt文件后缀为bat文件,双击setup.bat即可安装服务,在Windows服务中可以启动你的服务,双击unsetup.bat即卸载服务。
如果遇到如下问题:
安裝階段中發生例外狀況。
System.Security.SecurityException: 找不到來源,但無法搜尋部分或全部的事件記錄檔。無法存取的記錄檔: Security, State。
解决方法:
开始程序中搜索cmd,然后右击,管理员身份运行,切换到该Debug目录下,再执行setup.bat即可安装成功。