上一篇中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文件内容如下:
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
分享到:
相关推荐
* 在安装 OKR7 工程师版时,需要选择语言,安装程序会弹出对话框来选择安装后 OKR7 系统所使用的语言。 四、OKR7 工程师版常见问题解答 Q:OKR 7.0 系统不能进行工厂备份,提示” No service partiton”? A:遇到...
InstallShield是一款强大的安装制作工具,尤其擅长创建遵循MSI(Microsoft Installer)3.0规范的安装包。本文教程针对的是InstallShield v10.5版本,重点介绍如何利用它来创建MSI格式的产品安装包。在教程中,您将...
本文主要介绍该软件的安装方法、安装模式以及如何制作安装盘,并解答了一些常见问题。 **安装方法** 安装联想一键恢复7.0工程师版分为两个主要模式:全新安装和修复安装。 1. **全新安装** - 在启动计算机时,...
制作一张网络客户安装启动磁盘 制作安装磁盘组 基于客户的网络管理工具 Windows NT Workstation的网络管理工具 在一个Windows NT Workstation上安装管理工具的系统要求 Windows 95的网络管理工具 在Windows 95上安装...
- "Find os partition fail"错误提示意味着C盘可能未完成操作系统安装,或者可以尝试运行`BCDBOOT C:\WINDOWS /L {language}`命令(其中{language}为当前系统语言,如zh-cn)后再进行工厂备份。 - 若无法进入OKR...
本文档详细介绍了如何使用InstallShiled 10.5来制作ArcGIS Engine应用程序的安装包,包含安装运行时、补丁以及授权的步骤。 首先,创建安装包的基本思路包括五个主要步骤:1、将开发的应用程序打包进安装包;2、...
四、安装盘制作 OKR7.0的安装介质可以是光盘或U盘,通过UltraISO软件将OKR.ISO文件写入即可。 五、常见问题解答 - 如果无法进行工厂备份,提示"No service partition",检查O盘是否已隐藏。 - 如果提示"Find os ...
7. 安装操作系统时,可以选择不同的安装方式,例如Service CD方式安装、直接安装、加载驱动安装和制作安装源安装。 8. 在安装Windows、Linux、Solaris和VMware等不同操作系统时,用户需要采取不同的安装方法。 9. ...
本文档详细介绍了在昆仑通态工程环境下进行...总的来说,这份文档详细指导了昆仑通态工程在Windows环境下如何处理兼容性问题、制作和使用U盘下载工程以及解决USB下载问题,为用户在实际操作中提供了清晰的步骤参考。
主要步骤包括调用Windows的`Msiexec.exe`命令来进行安装,并使用`SoftwareAuthorization.exe`来进行授权。 - **参数配置**: - 在安装AE运行时时,需要指定正确的`MSIPATH`路径和`Feature`参数,以确定安装哪些功能...
RCP应用程序通常被打包成一个可执行的JAR文件(RCP应用程序),或者使用p2(Pulse)更新机制分发,用户可以通过安装向导来安装和升级应用程序,这使得软件的部署和更新更加便捷。 总结来说,RCP是一种强大的开发...
本文将详细介绍如何使用Installanywhere 2009来创建一个J2EE工程的安装程序,解决安装路径中存在空格以及MySQL数据库my.ini文件分隔符的问题。 首先,启动Installanywhere 2009,创建一个新的工程。在此步骤中,你...
5. **安装Service Pack 6:** 重启后,打开Service Pack 6所在的文件夹,双击运行`protel99seservicepack6.exe`安装补丁程序。这一步骤是为了确保软件稳定性和兼容性。 6. **汉化设置:** 将`C:\WINDOWS`目录下的`...
- 由于服务是在非交互式模式下运行,因此需要使用`ServiceController`组件或者命令行工具如`sc.exe`来启动、停止和交互服务。 - 在Delphi中,可以使用DebugService方法模拟服务环境进行调试。 6. **打包与部署** ...
6. **制作服务程序**:在Linux中,可以使用`systemd`服务来启动和管理后台程序。首先,编写一个`.service`文件,定义服务的行为,如启动命令、工作目录、环境变量等。然后,使用`systemctl`命令管理这个服务,例如`...