对服务的认识有很多个阶段。

  第一阶段:当时还在用c++,知道在一个进程里while(True){},然后里面做很多很多事情,这就叫做服务了,界面可能当时还用Console控制台程序。

  第二阶段:知道了服务要在后台执行,一般不会有界面显示,并且开机自启动,于是隐藏Console控制台界面,并且通过使用SC CREATE 将exe变为服务,并且达到开机自启动的目的。这时候还是c++ 阶段。

  第三阶段:因项目需求接触c#,发现有个叫项目模板专门制作windows 服务,尝试了下,感觉还不错,省事了许多。通过命令行安装服务。

  第四阶段:发现了一个好东西可以制作安装包,省去了敲命令行的痛苦,对实施人员来说肯定是个福音

一,编写windwos 服务

  c# 编写windows 服务还算是相当简单的,至少比c++ 要简单。

  1,新建项目windows 服务。填写服务名称TestService

  创建成功,项目界面是这样的

  2,编写服务代码,右键TestService,查看代码 OnStart,编写启动代码 。OnStop编写停止代码

namespace TestService
{
public partial class TestService : ServiceBase
{
FileStream fs = null;
StreamWriter sw = null;
Thread td = null;
public TestService()
{
InitializeComponent();
} protected override void OnStart(string[] args)
{
td = new Thread(WorkThread);
td.Start();
}
protected void WorkThread()
{
fs = new FileStream(@"f://ggg.txt", FileMode.OpenOrCreate, FileAccess.Write);
sw = new StreamWriter(fs);
while (true)
{ sw.WriteLine(DateTime.Now.ToString());
sw.Flush(); Thread.Sleep();
}
} protected override void OnStop()
{
if(td != null)
{
td.Abort();
}
sw.Close();
fs.Close(); }
}
}

  3,双击TestService.cs,在右边空白处右键添加安装程序 ,会出现这样两个东西,点击serviceInstall1 修改服务的名字,以及启动类型。点击serviceProcessinstall1,改变Account 为LocalSystem.

  4,OK 大功告成,一个简单的服务已经完成了。接下来,我们测试该服务是否能够正常跑。右键管理员打开命令提示框,数据 installutil TestService(服务名称)  进行安装服务,顺利的话,会有下面的提示完成的字符。这时会看到F盘忽悠ggg.txt 在写文件。

  二、制作安装包

  开始制作安装包,我们不能每次把这个服务拿出去都用命令行去安装,不太友好。右键解决方案,在其他类型点击安装部署,如果发现没有安装,就先去安装这个工具,很简单,VSI_bundle.exe 只有5M大小。

  在应用程序文件夹上右键添加项目输出。

  右键工程-》视图-》添加自定义操作-》右键添加自定义操作

  这个时候,重新编译Setup 工程就会生成setup.exe,该exe 就是我们的服务安装包。到此,整个服务编写打包就已经完成。

  good luck

c# 编写windows 服务,并制作安装包的更多相关文章

  1. 为自己编写的windows应用程序制作安装包

    1 写好了一个windows程序之后如何制作安装包 这个在vs中就可以直接发布了,可以制作msi的安装包和exe的安装包. 2 window应用程序安装包做了哪些事情 rpm安装包的话,只是把相应的文 ...

  2. NSIS制作安装包笔记(一):NSIS介绍、使用NSIS默认向导脚本制作Windows安装包

    前言   做产品时,定制的自定义安装界面常有的,使用NSIS + Qt可以完美的定制基于QT的安装界面,先从纯NSIS开始,制作常规的安装包.   应用程序的发布方式   应用程序发布的时候,具备以下 ...

  3. 利用WIX制作安装包(3)

    原文 利用WIX制作安装包(3) 利用WIX安装服务非常简单.只需要短短几句话就可以.当我们创建好一个Windows服务之后.我们在项目中创建一个Service.wxs 文件来安装服务,并且编辑代码如 ...

  4. 利用WIX制作安装包(2)

    原文 利用WIX制作安装包(2) 这一篇文章将为大家介绍如何使用WIX自定义UI.上一篇文章我们讲过WIX为我们提供了五种安装界面.每种安装界面都是由不同的Dialog组成.在这里我们挑选一种比较常用 ...

  5. 循序渐进做项目系列(5):制作安装包,谁人都可以!——VS制作安装包简明教程

    一开始让我做安装包的时候,其实我是拒绝的.因为我根本就不会做安装包.查了资料之后,我很懵,很晕,很乱,因为不清晰,不简明,不直白.然而经过一番彷徨的挣扎,我终于发现:制作安装包,谁人都可以!故挥狼毫, ...

  6. VS 制作安装包小窥

    难得忙里偷闲,看到有关VS制作安装包,按下文小试一把,还行,比不上Installshield. 首先在打开 VS2010    >   文件 >新建项目 创建一个安装项目  XXX 在“目 ...

  7. Windows服务项目打包成安装包(Windows服务)-----------VS2017项目程序打包成.msi或者.exe

    VS2017项目程序打包成.msi或者.exe Windows服务项目使用VS2017项目程序打包成.msi或者.exe安装包 项目打包成安装包(Windows服务) 1.安装打包插件:Microso ...

  8. 利用WIX制作安装包(1)

    原文 利用WIX制作安装包(1) #installation 下载最新版本的WIX toolset 并安装DOWNLOAD Wix toolset V3.5之后的版本已经可以集成到visual stu ...

  9. 使用VS2015制作安装包( 含相关的下载链接)

    补充: 在看下面的教程过程中,如果在下面的步聚1中没有 " Visual Studio Installer", 则需要通过下面的链接进行安装 Visual Studio Insta ...

随机推荐

  1. windows每天定时执行脚本

     windows每天定时执行脚本 这里说的定时器就是Windows下的任务计划,当时遇到的坑正好总结一下,因为Windows10的定时器去执行脚本当时试了好多遍,都是没有成功,后来通过自己的观察发现是 ...

  2. QinQ 技术解析

    目录 1. 概述 2. QinQ 的产生背景 3. QinQ的作用及原理 4. QinQ 技术的优点 5. QinQ 的报文结构 6. QinQ的实现方式 (1) 基本QinQ (2) 灵活QinQ ...

  3. squid+stunnel搭建代理服务器

    设备:需要两台服务器 一,外部服务器  属于外网  ip 为 47.106.8.100 1,安装squid软件 2,vi  /etc/squid/squid.conf acl localnet src ...

  4. Linux中的网络管理——网络配置及命令

    Linux网络配置 在Linux中配置IP地址的方法有以下这么几种: 图形界面配置IP地址(操作方式如Windows系统配置IP,但在实际生产中,我们并不建议在我们的服务器上安装Linux的图形界面, ...

  5. WebServer Project-02-XML解析

    XML:Extensible Markup Language,可扩展标记语言,左卫门数据的一种存储格式或用于存储软件的参数,程序解析此配置文件,就可以达到不修改代码就能更改程序的目的. <?xm ...

  6. ArcGis基础—shapefile矢量文件与lyr图层文件之间有何区别?

    shapefile (.shp) 是一种矢量数据存储格式,用于存储地理要素的位置.形状和属性. shapefile 存储在一组相关文件中,并包含一个要素类. 图层文件 (.lyr) 是存储源数据集路径 ...

  7. windows平板软件开机自启动+霸屏的操作方法

        转载(忘了地址) 很好很强大.成功亲测 使用你自己的账号(最好是管理员权限的账号)登录Windows,然后添加一个给其他人使用的账户(假设为other),注意一定要为other设置密码. 运行 ...

  8. 多flavor导致的源码依赖问题-- Cannot choose between the following configurations of project :sample:

    一.背景: 当我们在源码依赖的时候经常会导致一些问题. 我们的主工程有如下配置,它依赖了一个sample的本地工程 flavorDimensions "demo" productF ...

  9. FTPClient登录慢的问题

    java上传文件到ftp上,发现特别慢,debug了一下发现链接正常,ftp.login(username, password)这个登录方法特别慢 解决方案: vi /etc/vsftpd/vsftp ...

  10. 错误 175: 具有固定名称“MySql.Data.MySqlClient”的 ADO.NET 提供程序未在计算

    问题描述:错误 175: 具有固定名称“MySql.Data.MySqlClient”的 ADO.NET 提供程序未在计算 原因描述:一.首先我的系统是因为是win10 的有问题,重新装了系统. 二. ...