zoukankan      html  css  js  c++  java
  • c# 编写windows 服务,并制作安装包

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

      第一阶段:当时还在用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(2000);
                }
            }
    
            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 

  • 相关阅读:
    [导入]微软轻量级“代码生成器”—Repository Factory使用(上)
    数据结构练习(41)数组中三个只出现一次的数字
    数据结构练习(43)字符串的组合
    数据结构练习(37)复杂链表的复制
    数据结构练习(36)二叉树两结点的最低共同父结点
    数据结构练习(34)对称子字符串的最大长度
    数据结构练习(38)树的子结构
    数据结构练习(39)二叉树前中后序遍历的非递归实现
    数据结构练习(42)八皇后问题
    数据结构练习(35)数组中出现次数超过一半的数字
  • 原文地址:https://www.cnblogs.com/techdreaming/p/7820026.html
Copyright © 2011-2022 走看看