有一个dll必须放在一个指定目录下,我自己写的一个程序需要引用这个dll如何用相对路径的方法去引用这个dll?我现在如果这个dll不和我的程序在一个目录下就报无法找到XXX的依赖错误。那个dll不能考在我的目录下,也就是我如果要引用这个dll必须是相对目录里的哪个而不能将他copy到我程序的目录。我应该在项目中如何引用才能实现?

解决方案 »

  1.   

    string path=Directory.GetFile("相对路径名",".dll")
    Assembly myAssembly=Assembly.LoadForm(path)
    通过myAssembly就可以获得dll中相关信息
      

  2.   

    反射不可以我还要重改程序再说如果反射回来给我一个object那我如何强转?我还是要类型
      

  3.   

    为何不能拷在你的目录下,讲一下理由?
    如果它即不在你的目录下也不在windows系统目录下,你即使现在找到了它,到时候换个环境不也一样报错。
      

  4.   

    一定不能在相同目录下程序发布的时候有要求没办法我能够知道这个dll一定在我的上一层的一个目录下,所以才要用相对路径,不知道有没有办法
      

  5.   

    那你开始就应该说清楚啊,如果是上层目录的一个目录下,假设它叫lib, 那相对路径表示为 ..\lib\xxx.dll 不行吗?
      

  6.   

    这里应该是分两个问题
    1. 你通过反映或者其它方法找到你工程引用的那些DLL路径  
       如: ResolveEventHandler
    2. 在你工程里调用这些DLL方法前先把引用的这些DLL加载时来  
       如: Assembly.LoadFrom(path)
    我之前是这样做的.
      

  7.   

    草,解决了又不说,自己解决了了不起呀?一点共享精神都没,什么人呐?!记住,这里是csdn!
    逼我粗口
      

  8.   

    我来解释一下,7楼是对的Assembly.LoadFrom("文件夹名/dll文件名.dll");
    然后把你的exe放在根目录下就可以了~