写了一个服务,安装的时候提示要设置服务登录
查到了这个资料
首先 创建一个项目
然后添加一个安装类
在安装类内添加如下代码
using System;
using System.Collections;
using System.ComponentModel;
using System.ServiceProcess;
using System.Configuration.Install;
namespace TESMSservice
{
///
/// SMSServiceInstaller 的摘要说明。
///
[RunInstaller(true)]
public class SMSServiceInstaller : System.Configuration.Install.Installer
{
///
/// 必需的设计器变量。
///
//private System.ComponentModel.Container components = null;
private ServiceInstaller TESMSInstaller;
private ServiceProcessInstaller TESMSProcessInstaller;
public SMSServiceInstaller()
{
// 该调用是设计器所必需的。
//InitializeComponent();
TESMSInstaller = new ServiceInstaller();//创建服务安装实例;
TESMSInstaller.StartType = System.ServiceProcess.ServiceStartMode.Automatic;//服务启动类型
TESMSInstaller.ServiceName = "TESMSService";//服务名称
//TESMSInstaller.ServicesDependedOn = "Event Log,SQL Server (SQLEXPRESS)".Split(',');//服务的前提服务
TESMSInstaller.DisplayName = "gauzxjNews";//服务的显示名称
Installers.Add(TESMSInstaller); //加入这个服务安装信息
TESMSProcessInstaller = new ServiceProcessInstaller();//服务的处理安装
TESMSProcessInstaller.Account = ServiceAccount.LocalSystem;//服务的运行权限
Installers.Add(TESMSProcessInstaller);//加入这个处理安装
}
}
}
然后 项目默认类中 OnStart方法中写要执行的代码 别忘了释放资源
最好在 OnStop方法中写GC.Collect(); 强制垃圾回收
写好以后 编译一下 在bin 文件下会生成 你项目名称.exe的文件
然后打开 sdk命令提示 输入 installutil 你项目名称.exe(必须是绝对路径) 来注册服务
这样就可以了
删除服务是: installutil /u 你项目名称.exe(必须是绝对路径)