用本文基于 .net core 控制台应用程序部署为服务(.net Framework 可用)。
一、创建.NET Core的控制台应
第二步:通过 Nuget 安装 Topshelf 包。
三、代码
Program文件
class Program
{
static void Main(string[] args)
{
Topshelf.HostFactory.Run(Handler);
}
/// <summary>
/// 部署说明
/// 1发布成自包含类库方式
/// 2使用管理员运行Dos命令行
/// 3完整exe路径 install(安装) uninstall(卸载)
/// 4去到服务找到对应的服务进行启动
/// </summary>
/// <param name="cfg"></param>
static void Handler(Topshelf.HostConfigurators.HostConfigurator cfg)
{
cfg.Service<MKAutoDataService>(x =>
{
// 指定服务类型。这里设置为 MKAutoDataService
x.ConstructUsing(name => new MKAutoDataService());
// 当服务启动后执行的方法
x.WhenStarted(tc => tc.Start());
// 当服务停止后执行的方法
x.WhenStopped(tc => tc.Stop());
});
// 服务用本地系统账号来运行
cfg.RunAsLocalSystem();
// 服务描述信息
cfg.SetDescription("同步血浆数据服务");
// 服务显示名称
cfg.SetDisplayName("MKAutoPlasmaDataService");
//服务名称
cfg.SetServiceName("MKAutoPlasmaDataService");
}
}
MKAutoDataService
public void Start()
{
Thread AutoData = new Thread(AutoData);
tAutoData.Start();
}
public void Stop()
{
}
private void AutoData(object state)
{
while (true)
{
try
{
//方法内容
}
catch (Exception ex)
{
}
}
}
四、发布安装服务
先发布
找到你发布的路径的EXE文件,复制对应路径,打开CMD用管理员运行执行路径加 install语句安装
然后找到对应服务启动就行了
也可以将服务删除
删除命令