CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

请教用InstallShield x 怎么打包windows service程序?

楼主lyb_abiandbel(专注于OO分析与设计)2006-06-02 13:07:22 在 .NET技术 / C# 提问

我做了一个windows   service程序,但是头要求用InstallShield   x打包,请问该怎么做呢?  
   
  请各位帮帮忙,或者提供点资料,我自己看. 问题点数:100、回复次数:29Top

1 楼ruan_hg(阿阮)回复于 2006-06-02 13:15:15 得分 0

是vs2005下作的service吗?Top

2 楼lyb_abiandbel(专注于OO分析与设计)回复于 2006-06-02 13:50:27 得分 0

是啊!  
   
  不知道用InstallShield   x怎么打包.Top

3 楼Knight94(愚翁)回复于 2006-06-02 13:53:52 得分 5

windows   service程序其实就是一个app,只不过需要用Installutil.exe来安装service而已。  
   
  那么你用InstallShield来安装的时候,除了安装.net环境后,然后把windows   service程序复制目标目录,然后再用InstallShield提供的shell命令去调用installutil.exe去安装service。  
  Top

4 楼doublefish8133(米兰王朝)回复于 2006-06-02 14:08:02 得分 5

偶到是有点资料,8过这里8能上传    
  InstallShield   中文技术论坛:  
  http://installshield.jaron.cn/forum/index.asp?boardid=1  
  8过人气8是很好   希望对你有帮助!~Top

5 楼lyb_abiandbel(专注于OO分析与设计)回复于 2006-06-02 14:47:19 得分 0

我把windows service加到了本机服务中,但是当我启动的时候,  
   
  抱错啊!  
   
  在本地计算机无法启动IAC 服务  
  错误2:系统找不到指定的文件  
   
  请问可能是找不到什么文件呢?  
   
  不部署直接运行是可以的.Top

6 楼Knight94(愚翁)回复于 2006-06-02 14:51:03 得分 0

你的service中做了些什么操作Top

7 楼lyb_abiandbel(专注于OO分析与设计)回复于 2006-06-02 14:56:38 得分 0

这个我也不是很清楚啊,这个是别人写的,  
   
  什么问题会引起这个错误呢?  
   
  可能是这个服务要加参数?  如 :   -q   -a之类?  
   
  是不是要写注册表呢?我打包的时候没有把这个服务写到注册表.  
   
  我在InstallShield   x   中用  
  ServiceAddService   (   "IAC",   "IAC",   "aaaaaaaaa",   "C:\WINDOWS\system32\IAC\IAC.exe",   TRUE,   ""   );  
  来添加服务的.Top

8 楼Knight94(愚翁)回复于 2006-06-02 15:08:01 得分 0

.net写的服务,好像不能用IAC来进行加载,需要用InstallUtil.exe来进行加载Top

9 楼lyb_abiandbel(专注于OO分析与设计)回复于 2006-06-02 16:11:53 得分 0

终于被我找到原因了,目录路径不对,应该是"C:\\WINDOWS\\system32\\IAC\\IAC.exe"  
   
   
  可是又有问题了,启动到一半,出现"服务没有及时响应或控制请求"错误,我想会不会是程序本身写的有问题?Top

10 楼Knight94(愚翁)回复于 2006-06-02 16:23:09 得分 0

to   可是又有问题了,启动到一半,出现"服务没有及时响应或控制请求"错误,我想会不会是程序本身写的有问题?  
   
  看看Service的onstart做了什么操作。Top

11 楼lyb_abiandbel(专注于OO分析与设计)回复于 2006-06-02 17:39:47 得分 0

恩,是程序的问题,  
   
  请问我可以在InstallShield   x中初始化我的连接字符串吗?  
   
  我在安装的时候把数据库也安装了,我想取得连接数据库的信息,然后写入web.config,不知道这个操作在InstallShield   x中时候能实现?  
   
  取得连接数据库的信息应该可以做到,关键是怎么样写人web.config文件.  
   
  我想用LunchAPP函数调用我自己写的一个配置工具,来写webconfig,不知道这样行不行?Top

12 楼Knight94(愚翁)回复于 2006-06-02 17:43:01 得分 0

那你的service通过什么去使用参数呢Top

13 楼Knight94(愚翁)回复于 2006-06-02 17:43:24 得分 0

或者怎么使用系统配置文件呢Top

14 楼lyb_abiandbel(专注于OO分析与设计)回复于 2006-06-02 17:47:34 得分 0

哦,我这个是web程序,windows   service搞定了.Top

15 楼lyb_abiandbel(专注于OO分析与设计)回复于 2006-06-02 17:48:40 得分 0

关键我是想根据安装时选择的数据库来配置连接字符串,我上面的方法应该可以吧!Top

16 楼misvcom(零下一度)回复于 2006-06-02 17:50:58 得分 0

10.5   以后的版本可以通过   XML   File   Changes   View   来修改web.configTop

17 楼lyb_abiandbel(专注于OO分析与设计)回复于 2006-06-02 18:04:15 得分 0

to:misvcom(零下一度)  
   
  具体怎么实现呢?有相关资料吗?Top

18 楼lyb_abiandbel(专注于OO分析与设计)回复于 2006-06-02 20:07:48 得分 0

upTop

19 楼lyb_abiandbel(专注于OO分析与设计)回复于 2006-06-02 23:32:14 得分 0

to:misvcom(零下一度)  
   
  10.5   以后的版本可以通过   XML   File   Changes   View   来修改web.config  
  ------------------------------------  
   
  的确,我可以把webconfig文件导入.  
   
  因为我在开始安装的时候,安装了数据库,请问我可以根据这个安装信息来设置我的web.config文件吗?  
   
  所有的string   信息都保存在string   table   里面,我怎么取到这些值呢?  
   
  比如:  
  Identifier:ID_STRING28  value:"Initial   Catalog=Freight;Data   Source=(local);Password=;User   ID=sa;";  
   
  我想改变这个值,怎么写呢?直接引用会抱错.  
  ID_STRING28="Initial   Catalog=Freight;Data   Source=(local);Password=;User   ID=sa;";  
   
  string   table里面的字符串怎么引用呢? Top

20 楼dgrwang(探索者)回复于 2006-06-03 00:16:31 得分 0

InstallShield   11.5是最新版,比较爽Top

21 楼misvcom(零下一度)回复于 2006-06-03 12:57:54 得分 0

通过   @ID_STRING28   可以取得它的value  
   
  至于赋值我没试过,但像上面那样写应该是只读的  
   
  你可以用Creating   or   Changing   Properties搜索一下它自带的帮助文档  
   
  有相关的说明  
  Top

22 楼ilove8(千里|你去哪里了,我等了你很久了!)回复于 2006-06-03 13:20:33 得分 0

dingTop

23 楼lyb_abiandbel(专注于OO分析与设计)回复于 2006-06-04 16:32:31 得分 0

谢谢你的帮助.  
   
  我还想问一下,怎么样取得textbox的值或者checkbox的值呢?  
   
  我想根据checkbox的值来设置我的字符串.安装数据库的时候不是选择windows   验证还是sql验证那个checkbox.  
   
  比如:  
   
  if   checkbox.value=true  
   
  ListSetCurrentString(9,tmpsz1);     //设置字符串好象是用这个函数.  
   
  else  
  ListSetCurrentString(9,tmpsz2);Top

24 楼lyb_abiandbel(专注于OO分析与设计)回复于 2006-06-04 17:31:04 得分 0

to:misvcom(零下一度)  
   
   
  请帮帮忙,  
  http://community.csdn.net/Expert/topic/4799/4799575.xml?temp=.6752283Top

25 楼misvcom(零下一度)回复于 2006-06-04 17:31:36 得分 90

在编写脚本的时候,可以通过函数的返回值取得。如果是你自定义的窗体,同样可以。尽量使用  
  InstallShield   中预定意的窗体,我记得应该有使用TextBox或CheckBox要求用户提供信息的窗体的  
   
  这是选择安装路径的窗体:  
   
  nResult   =   SdAskDestPath(szTitle,   szMsg,   INSTALLDIR,   0);Top

26 楼lyb_abiandbel(专注于OO分析与设计)回复于 2006-06-04 18:10:31 得分 0

to:misvcom(零下一度)  
   
   
  请帮帮忙,  
  http://community.csdn.net/Expert/topic/4799/4799575.xml?temp=.6752283Top

27 楼dgrwang(探索者)回复于 2006-06-05 14:35:57 得分 0

markTop

28 楼yang_road()回复于 2006-06-05 14:47:39 得分 0

顶Top

29 楼lyb_abiandbel(专注于OO分析与设计)回复于 2006-06-06 09:09:03 得分 0

upTop

相关问题

关键词

得分解答快速导航

  • 帖主:lyb_abiandbel
  • Knight94
  • doublefish8133
  • misvcom

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo