利用打包程序打包时(如InstallShield,wise Installer等),假设我在我的程序中使用了一个Dll:a.dll,而这个a.dll又依赖于b.dll,(我没有直接使用b.dll)那么我在将a.dll打包进程序时:1,打包程序是否将b.dll自动包含进去???如果是,能否解释一下打包程序的处理方法和机制???2,如果不是?是否要手工加入???3,如果b.dll是windows系统安装时缺省带的,比如ws2_32.dll,又将怎样???打包程序是否就不予打包???希望高手们能讲得详细点。

解决方案 »

  1.   

    1.打包程序一般可以安装几个相对独立的部件,如数据库部件,控件等。
      但是并不是所有的DLL都可以打包进去。可以使用depends分析DLL的信赖关系。2.如果打包中没有安装该DLL,就要手工加入。3.如果是操作系统已经安装的,则不需要打包进去,另外,如果你的DLL与系统中的版本不一样,则要打包进行。
      

  2.   

    wuxuan(真心英雄):
    我听说一些打包程序(如InstallShield,wise等)可以自动查找依赖关系,比如我用了a.dll,而a.dll又用了b.dll,那么打包程序会自动搜索到b.dll这个文件并将它加入程序包,是否有这种事???
      

  3.   

    不用啊,利用VS的工具就可以看到这层关系啊。系统自带的DLL不用打包的(但是注意可能由于高版本的系统DLL而造成在低版本系统无法使用的问题);你说的打包指的是制作安装还是CAB自下载??产生依赖关系的DLL,只要没有在某一个DLL中以某种静态方式实现,则需要全部打入,系统包除外。
      

  4.   

    我说的静态实现指的是你的DLL是否以包含某DLL元文件的形式全部实现。