`
CanBeatle
  • 浏览: 168758 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

制作安装工程来按安装Windows Service

    博客分类:
  • C#
阅读更多

上一篇中http://canbeatle.iteye.com/blog/698364,我写了一个Windows Service,这一章将制作一个安装程序把这个service安装到Windows上,步骤如下:

 

1.  在刚才的Windows Service工程中,新增一个Setup工程(Other Project Types-->Setup and Deployment-->Setup Project),取名MyTCPTestServiceSetup,右键选择该工程,选择Add-->Projcet Output,在弹出的对话框中,上面可以选择已有的工程(就是前面的Windows Service工程),在下面的列表中选择Primary output,点击确定。

2. 依次在”目标计算机上的文件系统“--”应用程序文件夹“下添加以下四个文件(右键-->添加-->文件)

  1、msiexec.exe

  2、start.bat

  3、stop.bat

  4、主输出文件

其中msiexec.exe位于Windows\System32下

  stop.bat文件内容如下:

    echo off

    net stop "MyTCPTestService"

    exit  

  start.bat文件内容如下:C#制作Windows service服务系列一:制作一个可安装、可启动、可停止、可卸载的Windows service

       echo off

       net start "MyTCPTestService"

       exit

 

在"用户的程序文件夹下",新建一文件夹”MyTCPTestService“,分别制作这前三个文件的快捷方式到这里:

其中,卸载服务的属性窗口中,Arguments的值为:/x  {1936C0CD-E546-4AB6-9BB3-EC49A4E87754},后面一串字符的值必须是该安装工程的属性窗口中ProductCode的值。

 

OK ! 生成安装包, 别急,安装完后,windows service并没有安装成服务。还必须在安装项目中添加自定义操作。右击安装项目->视图->自定义操作。在“自定义操作”中右击“自定义操作”节点,然后选择“添加自定义操作”。  
出现“选择项目中的项”对话框。 在列表框中双击“应用程序文件夹”将其打开,选择“主输出来自   MyTCPTestWindowsService(活动)”,然后单击“确定”。 主输出被添加到自定义操作的所有四个节点,即“安装”、“提交”、“回滚”和“卸载”。   如下图:

Ok,Build后就可以生成Setup.exe了。

执行安装后,在Windows的service中就可以看到MyTCPTestService,启动该Service,编写如下代码向8080端口发送测试数据:

try
            {
                TcpClient tcpClnt = new TcpClient("10.168.45.225", 8080);
                //Checking socket is connected or not.
                //====================================
                if (tcpClnt.Connected)
                {
                    NetworkStream networkStrm = tcpClnt.GetStream();
                    StreamReader  streamRdr = new StreamReader(networkStrm);
                    StreamWriter streamWtr = new StreamWriter(networkStrm);
                    streamWtr.WriteLine("aaaaa");
                    streamWtr.Flush();
                }
            }
            catch (SocketException ex)
            {
                Console.WriteLine("Exception occur while connecting to Service " + ex.Message);
            }
            catch (OutOfMemoryException ex)
            {
                Console.WriteLine("Memory overflow while reading or writing stream in Service: " + ex.Message);
            }
            catch (IOException ex)
            {
                Console.WriteLine("Exception occured while reading or writing the stream:-" + ex.Message);
            }

 

在Event View中可以看到:

  • 大小: 126.3 KB
分享到:
评论

相关推荐

    联想一键恢复7.0工程师版安装方法及软件下载.pdf

    * 在安装 OKR7 工程师版时,需要选择语言,安装程序会弹出对话框来选择安装后 OKR7 系统所使用的语言。 四、OKR7 工程师版常见问题解答 Q:OKR 7.0 系统不能进行工厂备份,提示” No service partiton”? A:遇到...

    InstallShield安装程序制作教程

    InstallShield是一款强大的安装制作工具,尤其擅长创建遵循MSI(Microsoft Installer)3.0规范的安装包。本文教程针对的是InstallShield v10.5版本,重点介绍如何利用它来创建MSI格式的产品安装包。在教程中,您将...

    联想一键恢复7.0工程师版安装方法及软件下载 (2).pdf

    本文主要介绍该软件的安装方法、安装模式以及如何制作安装盘,并解答了一些常见问题。 **安装方法** 安装联想一键恢复7.0工程师版分为两个主要模式:全新安装和修复安装。 1. **全新安装** - 在启动计算机时,...

    windowsnt 技术内幕

    制作一张网络客户安装启动磁盘 制作安装磁盘组 基于客户的网络管理工具 Windows NT Workstation的网络管理工具 在一个Windows NT Workstation上安装管理工具的系统要求 Windows 95的网络管理工具 在Windows 95上安装...

    联想一键恢复7[1]0工程师版安装方法及软件下载.docx

    - "Find os partition fail"错误提示意味着C盘可能未完成操作系统安装,或者可以尝试运行`BCDBOOT C:\WINDOWS /L {language}`命令(其中{language}为当前系统语言,如zh-cn)后再进行工厂备份。 - 若无法进入OKR...

    利用InstallShiled 10.5制作ArcEngine制作安装包

    本文档详细介绍了如何使用InstallShiled 10.5来制作ArcGIS Engine应用程序的安装包,包含安装运行时、补丁以及授权的步骤。 首先,创建安装包的基本思路包括五个主要步骤:1、将开发的应用程序打包进安装包;2、...

    联想一键拯救系统工程师版OneKey7.0_安装说明

    四、安装盘制作 OKR7.0的安装介质可以是光盘或U盘,通过UltraISO软件将OKR.ISO文件写入即可。 五、常见问题解答 - 如果无法进行工厂备份,提示"No service partition",检查O盘是否已隐藏。 - 如果提示"Find os ...

    华为服务器 操作系统 安装指南 04.pdf

    7. 安装操作系统时,可以选择不同的安装方式,例如Service CD方式安装、直接安装、加载驱动安装和制作安装源安装。 8. 在安装Windows、Linux、Solaris和VMware等不同操作系统时,用户需要采取不同的安装方法。 9. ...

    昆仑通态工程下载运行详细步骤.pdf

    本文档详细介绍了在昆仑通态工程环境下进行...总的来说,这份文档详细指导了昆仑通态工程在Windows环境下如何处理兼容性问题、制作和使用U盘下载工程以及解决USB下载问题,为用户在实际操作中提供了清晰的步骤参考。

    利用InstallShiled 10.5制作AE应用程序安装包.

    主要步骤包括调用Windows的`Msiexec.exe`命令来进行安装,并使用`SoftwareAuthorization.exe`来进行授权。 - **参数配置**: - 在安装AE运行时时,需要指定正确的`MSIPATH`路径和`Feature`参数,以确定安装哪些功能...

    rcp工程的描述

    RCP应用程序通常被打包成一个可执行的JAR文件(RCP应用程序),或者使用p2(Pulse)更新机制分发,用户可以通过安装向导来安装和升级应用程序,这使得软件的部署和更新更加便捷。 总结来说,RCP是一种强大的开发...

    installanywhere2009 打包j2ee工程全程图解

    本文将详细介绍如何使用Installanywhere 2009来创建一个J2EE工程的安装程序,解决安装路径中存在空格以及MySQL数据库my.ini文件分隔符的问题。 首先,启动Installanywhere 2009,创建一个新的工程。在此步骤中,你...

    protel99se汉化中文版 详细安装教程

    5. **安装Service Pack 6:** 重启后,打开Service Pack 6所在的文件夹,双击运行`protel99seservicepack6.exe`安装补丁程序。这一步骤是为了确保软件稳定性和兼容性。 6. **汉化设置:** 将`C:\WINDOWS`目录下的`...

    使用Delphi制作Tservice的例子

    - 由于服务是在非交互式模式下运行,因此需要使用`ServiceController`组件或者命令行工具如`sc.exe`来启动、停止和交互服务。 - 在Delphi中,可以使用DebugService方法模拟服务环境进行调试。 6. **打包与部署** ...

    linux工程编译简单命令汇总

    6. **制作服务程序**:在Linux中,可以使用`systemd`服务来启动和管理后台程序。首先,编写一个`.service`文件,定义服务的行为,如启动命令、工作目录、环境变量等。然后,使用`systemctl`命令管理这个服务,例如`...

Global site tag (gtag.js) - Google Analytics