我的C#的程序在我的机器上能跑,但是打包到用户计算机上就提示找不到DLL,根据以前的提示,我做到了: 
 (1)我把所有的DLL都copy到了用户的system32目录下面;
 (2)在用户计算机上手工用regsvr32命令注册dll,但是有些dll注册时显示不能loadLibrary,有些显示不能找到DllRegisterServer输入点,无法注册,不知道为什么?
 (3)C#的dll有没有什么特别的规定呢?我记得在程序中调用库的时候都没有用到.lib文件
  现在就是找不到库,郁闷!请高手指点

解决方案 »

  1.   

    你不是用的debug版吧。
    检查给客户的程序是不是release下编译的
      

  2.   

    我发布的安装包是debug版本下的,debug和release有什么不同吗?
      

  3.   

    和exe放在同一目录
      
    *****************************************************************************
    欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) 
    http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
      

  4.   

    具体区别俺可没研究过。不过有些程序使用debug有问题,release 就不会,先用release 版试试吧。还有就是原来的dll在哪就放在哪,不要都拷贝到system32 下。某些dll需要和exe放在同一目录,不是所有的dll都能注册使用。
      

  5.   

    换成release版本了,还是不行,郁闷!
    是不是在C#里面的dll都需要一定的格式?我就是用vc6.0生成的动态链接库啊,而且是最后一种方式,就是输出一些symbol的那种,是不是这种得dll有问题?
      

  6.   

    你的dll是debug,还是release?
    好像是有区别,找一下资料
      

  7.   

    因为你的机器安装了编译器。或者某个dll在你这里注册了,而用户那边没有注册。把所有你需要的都用release版。打包给用户时dll位置不要随便修改。确认用户端的FrameWork版本跟你的一致。最好先找台机器测试一下。
      

  8.   

    我晕。.Net 的DLL怎么能用 regsvr32 来注册呢?1、
    你得采用 gacutil /i yourlibrary 来将程序注册到全局缓存中。
    参见“Visual Studio 2005 SDK 命令提示-->gacutil /?”2、
    将dll与你的应用程序文件发布到同一目录下
      

  9.   

    wdy9927,能不能留下你的联系方式,到时候再问你?