wxd636
路人甲
路人甲
  • 注册日期2003-09-27
  • 发帖数6
  • QQ
  • 铜币151枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1389回复:2

[求助]急!急! 求救MO打包

楼主#
更多 发布于:2004-08-12 16:55
使用VB的打包和部署向导,对用MO开发的工程进行打包,
VB自身对工程使用的系统文件和使用的控件进行搜索,并将
其加入的安装文件中,但是利用建立的安装文件进行安装时,
却显示:
VB6STKIT.DL、COMCAT.DLL、VB6CHS.DLL、STDOLE2.TLB、
ASYCFILT.DLL、OLEPRO32.DLL、OLEAUT32.DLL、MSVBVM60.DLL
为系统共享文件,不能复制,终断安装。
手工编辑 Setup.lst 文件,删除以上文件也不能进行安装,
急求各位大侠,谢谢
喜欢0 评分0
wxd636
路人甲
路人甲
  • 注册日期2003-09-27
  • 发帖数6
  • QQ
  • 铜币151枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-08-13 16:46
<P>谢谢大侠!</P><P>不过我想问一下,用VB的打包和部署向导不能做吗?</P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2004-08-13 13:45
<P>
下面以installshield作为打包工具,介绍一下如何对
mo20打包,其他的打包工具类似。
1、将mo所需注册的几个文件放在filegruop中作为一个filegroup,名称为modll,当然你可以用其它的名称,把modll这个filegroup的
self_registered属性设为no,destination属性(也就是路径属性)设为<commonfiles>/esri,也就是将mo的这几个dll拷到
//common files/esri目录下。下面我介绍一下这几个mo的dll文件:
File Version Comments </P><P>MO20.ocx 2.0.1.0 MapObjects2.0 ActiveX Control
Shape20.dll 2.0.1.0 Shape support library
AF20.dll 2.0.1.0 MapObjects support library
AFCust20.tlb - AF20 custom type library
PE.dll 4.0.0 SDE 3.0 projection support library
SG.dll 3.0.2.1 SDE 3.0 shape geometry support library
MTCH.dll 8.0.185 Address Matching support library
上面的这几个文件是必须的,以下几个文件根据你的功能要求添加
Coverage20.dll 2.0.1.0 Coverage support library
CAD20.dll 2.0.1.0 CAD support library
Edat.dll - CAD support library
PANIO.dll - CAD functions support library
MoSde302.dll 2.0.1.0 SDE 3.0 support library
SDE30.dll 3.0.2.1 SDE 3.0 extension library
VPF20.dll 2.0.1.0 VPF support library </P><P>MoSde302Table.dll 2.0.1.0 SDE 3.0 table support library
OdbcTbl20.dll 2.0.1.0 ODBC support library
InfoTable20.dll 2.0.1.0 INFO table support library
JetTable20.dll 2.0.1.0 JET table support library </P><P>AIImage20.dll 2.0.1.0 Image support library
libtiff.dll - Image support library
elib.dll 8.3.1 Image support library
efileio.dll - Image support library
ergxlib.dll - Image support library
ethrlib.dll - Image support library
ISO8211.dll - Image support library
Mobase.dll 2.0.1.0 MapObjects2.0 Grid support library
Mofeat.dll 2.0.1.0 MapObjects2.0 Grid support library
Mogridio.dll 2.0.1.0 MapObjects2.0 Grid support library
dforrt.dll 6.0.612.101 Fortran Link Library
MoMrSID.dll 2.0.1.0 MrSID Image support library
MrSIDD.dll 2.0.0.0 MrSID Image support library
以上的这些文件你可以在装过mo的机器的//common files/esri目录下找到。 </P><P>
2、类似于第1步,把mo20需要的几个系统文件放在filegruop中作为一个filegroup,名称为system,当然你可以用其它的名称,把system这个filegroup的self_registered属性设为no,destination属性(也就是路径属性)设为<WINSYSDIR>,也就是将这几个dll拷到SYSTEM目录下。(如果2000或NT为system32,如果98为system),下面我介绍一下这几个dll
Ctl3d32.dll
mfc42.dll
Msvcirt.dll
Msvcp60.dll
msvcrt.dll
Msvcrt40.dll
oleaut32.dll
olepro32.dll
stdole2.tlb
其中你不要把这些dll都加到system这个filegruop中,因为这些是系统文件,系统本来就有的。我当初在2000下打包时把这些dll都加了进去,结果导致我的打包文件只能在2000下用,98下mo的一些dll注册不了,这个问题困扰了我好几天,也是我觉得嘴容易出错的地方。其实上面的几个文件只要把Msvcp60.dll这个文件加到system这个filegruop中就可以了,其它的千万不要加。Msvcp60.dll这个文件这个文件在system系统目录下可以找到(装过mo的机器)。 </P><P>3、把下面这几行加到installshield的脚本中的onfirstuiafter过程中,作用是在机器重启或执行注册。
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); ("SoftwareMicrosoftWindowsCurrentVersionRunOnce","ESRISetup0",REGDB_STRING,""" + WINSYSDIR^ "RegSvr32.exe"+"""+ " /s " +"""+WINSYSDIR^ "msvcrt.dll"+""",-1);
RegDBSetKeyValueEx("SoftwareMicrosoftWindowsCurrentVersionRunOnce","ESRISetup0",REGDB_STRING,""" + WINSYSDIR^ "RegSvr32.exe"+"""+ " /s " +"""+WINSYSDIR^ "Mfc42.dll"+""",-1);
RegDBSetKeyValueEx("SoftwareMicrosoftWindowsCurrentVersionRunOnce","ESRISetup1",REGDB_STRING,""" + WINSYSDIR^ "RegSvr32.exe"+"""+ " /s " +"""+WINSYSDIR^ "Olepro32.dll"+""",-1);
RegDBSetKeyValueEx("SoftwareMicrosoftWindowsCurrentVersionRunOnce","ESRISetup2",REGDB_STRING,""" + WINSYSDIR^ "RegSvr32.exe"+"""+ " /s " +"""+WINSYSDIR^ "Oleaut32.dll"+""",-1); </P><P>RegDBSetKeyValueEx("SoftwareMicrosoftWindowsCurrentVersionRunOnce","ESRISetup3",REGDB_STRING,"""+WINSYSDIR^"RegSvr32.exe "+"""+" /s "+"""+COMMONFILES^"ESRImo20.ocx"+""",-1);
RegDBSetKeyValueEx("SoftwareMicrosoftWindowsCurrentVersionRunOnce","ESRISetup4",REGDB_STRING,"""+WINSYSDIR^"RegSvr32.exe "+"""+" /s "+"""+COMMONFILES^"ESRIShape20.dll"+""",-1);
RegDBSetKeyValueEx("SoftwareMicrosoftWindowsCurrentVersionRunOnce","ESRISetup5",REGDB_STRING,"""+WINSYSDIR^"RegSvr32.exe "+"""+" /s "+"""+COMMONFILES^"ESRIOdbcTbl20.dll"+""",-1);
RegDBSetKeyValueEx("SoftwareMicrosoftWindowsCurrentVersionRunOnce","ESRISetup6",REGDB_STRING,"""+WINSYSDIR^"RegSvr32.exe "+"""+" /s "+"""+COMMONFILES^"ESRIJetTable20.dll"+""",-1);
RegDBSetKeyValueEx("SoftwareMicrosoftWindowsCurrentVersionRunOnce","ESRISetup2",REGDB_STRING,""" + WINSYSDIR^ "RegSvr32.exe"+"""+ " /s " +"""+WINSYSDIR^ "MSXBSE35.DLL"+""",-1); </P><P>
4、注册字体。依照前两步,把字体文件拷到系统的fonts目录中,在脚本中添加注册语句,如:if (RegDBKeyExist("SoftwareMicrosoftWindows NTCurrentVersionFonts")==1) then
RegDBSetKeyValueEx("SoftwareMicrosoftWindows NTCurrentVersionFonts","ESRI Crime Analysis (TrueType)",REGDB_STRING,"Esri_8.ttf",-1);
elseif(RegDBKeyExist("SoftwareMicrosoftWindowsCurrentVersionFonts")==1) then
RegDBSetKeyValueEx("SoftwareMicrosoftWindowsCurrentVersionFonts","ESRI Crime Analysis (TrueType)",REGDB_STRING,"Esri_8.ttf",-1);
endif;
其中的判断语句为判断系统为98或2000。 </P><P>
到此结束,当然你还要把你的vb或vc要用的dll打进去,这个你可以用installshield的vb或vc的打包向导来做,希望我的经验能给你帮助! </P><P>
 </P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
游客

返回顶部