我使用的是installshield,建了两个文件组,dll和jxc,在dll文件组里加入了发布sql2000客户端必需的几个dll:
Dbmssocn.dll    TCP/IP 支持文件 
Dbmsspxn.dll    IPX 支持文件 
Dbnmpntw.dll    命名管道支持文件 
Ntwdblib.dll    SQLServer核心文件
还加入了程序里用到的Ehlib控件包Ehlib.dpk
dll文件组定义的是自注册的,我希望打包时自动注册上述文件
在jxc文件组里就放了可执行文件jxc.exe
完成打包后,执行setup.exe出现下面错误:
self-registration error
following fils did not self-register
1.c\program fils\billy\jxc\dll\Dbmssocn.dll
找不到指定的程序
2.c\program fils\billy\jxc\dll\Ehlib.dpk
%1不是合法的win32应用程序
请大家帮我分析一下原因,我是第一次用installshield做打包程序,不知道还需不要需要其它的文件

解决方案 »

  1.   

    1.准备一份Install Shield Express,最好是2.01以上的版本,在Delphi的安装盘上有一个专用版本也可以用,按照制作一般程序安装盘的方法建立安装程序, 必须安装BDE和SQL LINKS.2.在你的Windows下面找到以下几个文件(当然你的机器必须已经安装SQLServer):Dbmssocn.dll TCP/IP 支持文件Dbmsspxn.dll IPX 支持文件Dbnmpntw.dll 命名管道支持文件Ntwdblib.dll SQLServer核心文件(这个文件最重要)3.在Fpecify Components and Files的Groups and Files中,将以上几个文件加入到Program Files中去.当然你也可以建立一个组,将这些文件拷贝到System目录中,不过jojo个人倾向于拷贝到安装目录,以便反安装的时候可以彻底的删除它们.4.如果你的程序运行比较简单(比如只有一个网段)现在你已经大功告成了,但不幸的是大多数人的网络环境没有如此简单,下面还要修改注册表:增加一个:hkey_local_machine_/software/Microsoft/MSSQLserver/CLIENT/db-lib,其中DSQUERY设定默认的连接协议,这里设定的是IPX,128.1.1.1则是专有的连接, 这里是设定一个连接名称为128.1.1的连接,使用TCP/IP协议,IP地址为128.1.1.1,你也可以把键名改成其他名称,只要与你的别名中SERVER NAME一项相同即可.至此,你的安装盘已经做成,现在只需要Building一下就可以了.
      

  2.   

    我想请问的是ehlib怎么进行打包发布到客户端呢?要不然我的程序到客户端已启动就显示程序错误,正在创建错误日志,我估计应该是ehlib没有安装的缘故,因为我可以连接到sql数据库服务器,请高手们指点
      

  3.   

    可能ehlib是不需要打包进去的,我打包安装了MDAC2.8,但为何我程序在客户端安装后,启动登陆输入用户名和密码以后就出现程序错误,写入错误日志的信息提示呢?主界面也没进去
      

  4.   

    直接分发.exe文件不行吗?(客户端要安装mdac2.8)