我做了一个GIS系统,只用到了MapObjects的一个Mo20.ocx控件,用setup factory6.0打包后安装到其它机器上,系统提示安装成功,而且在那台机器上也能看到mo20.ocx控件文件,但就是运行不成。后来我用“regsvr32 c:\windows\system\mo20.ocx”手工注册,提示是“部件‘mo20.ocx'或其附件之一不能正确注册:一个文件丢失或无效”。该系统在我机器上可是能正常运行的!who can save me?

解决方案 »

  1.   

    一个文件丢失或无效”就是你mo20.ocx用到的dll或ocx(包括系统的)没有打包进来
      

  2.   

    肯定是少了一两个组件,可能是oca啊什么的。
      

  3.   

    直接把mo20.ocx拷过去,注册一下试试.看是否是打包的问题?
      

  4.   

    我的建议是,把你开发机器上的所有Mo20.*文件拷贝到那台机器,先用
    regsvr32 -u c:\windows\system\mo20.ocx反注册下,然后再regsvr32 c:\windows\system\mo20.ocx
    注册,用来确定是否是控件或者是机器的原因。
    如果没有问题的话,就应该是你打包的不全了,可以用微软自带的打包工具试下应该是没有问题的。
      

  5.   

    Visual Stdio工具中有一个叫depend的工具,用他打开你的可执行文件,会把所有相关的动态链接库文件看出来,发布工程时把它们都带上就肯定能执行了。
      

  6.   

    注意每个动态链接库文件下可能还需要其他动态链接库支持!看看你的ocx文件是不是需要其他文件支持,或者你的控件是不是要注册之类的问题.
      

  7.   

    我太迷信setup factory了,最后我用VB自带的打包工具搞定,谢谢各位!