设为首页
优惠IDC
收藏本站
六狼博客
六狼论坛
开启辅助访问
切换到窄版
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
只需一步,快速开始
快捷导航
门户
首页
BBS
云计算
大数据
手机
移动开发android,ios,windows phone,windows mobile
编程
编程技术java,php,python,delphi,ruby,c,c++
前端
WEB前端htmlcss,javascript,jquery,html5
数据库
数据库开发Access,mysql,oracle,sql server,MongoDB
系统
操作系统windows,linux,unix,os,RedHat,tomcat
架构
项目管理
软件设计,架构设计,面向对象,设计模式,项目管理
企业
服务
运维实战
神马
搜索
搜索
热搜:
php
java
python
ruby
hadoop
sphinx
solr
ios
android
windows
centos
本版
帖子
用户
六狼论坛
»
首页
›
操作系统
›
windows
›
制作安装工程来按安装Windows Service
返回列表
查看:
329
|
回复:
0
制作安装工程来按安装Windows Service
[复制链接]
CanBeatle
CanBeatle
当前离线
积分
123
窥视卡
雷达卡
升级
48.67%
当前用户组为
秀才
当前积分为
123
, 升到下一级还需要 77 点。
33
主题
33
主题
33
主题
秀才
秀才, 积分 123, 距离下一级还需 77 积分
秀才, 积分 123, 距离下一级还需 77 积分
积分
123
发消息
楼主
|
发表于 2013-2-7 04:48:00
|
显示全部楼层
|
阅读模式
上一篇中
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中可以看到:
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2008-2020
六狼论坛
(https://it.6wolf.com) 版权所有 All Rights Reserved.
Powered by
Discuz!
X3.4
京ICP备14020293号-2
本网站内容均收集于互联网,如有问题请联系
QQ:389897944
予以删除
快速回复
返回顶部
返回列表