RT,问题不是单纯的“指定所引用的DLL路径”,而是“指定[引用的DLL]所引用的DLL路径”
解释一下,我的Winform程序比较庞大,不能将所有DLL放在根目录里,而是有文件夹层次的。这样问题就来了:1.我将EXE要引用的所有DLL放在根目录里,其中包含a.dll;
2.出于插件或其他方面的考虑,某个b.dll放在文件夹folderA中,需要时通过反射由主程序调用b.dll;
3.问题是 b.dll也要引用a.dll,但我总不可能将a.dll又复制一份又放到folderA中来吧?这样对于部署多麻烦啊;
4.我想知道的是:如何在主程序通过反射调用b.dll时告诉b.dll:a.dll的位置,或者直接在b.dll里告知也可?很多软件都有不少文件夹,我相信我这种问题应该是个普遍现象吧?

解决方案 »

  1.   

    不过我发现很多程序都是把一个独立模块的DLL放在一个目录里的。。
      

  2.   

    也就是说一个目录里的DLL抽出来就能独立运行包括一些商业软件也是这样设计的,比如360,QQ等
      

  3.   

    自己顶个
    这几天查到了通过新建个AppDomian,设置它的PrivatePath,但这相当于新建了一个程序集,和当前程序集一点关系都没有,肯定不好用
    AppDomain.CurrentDomain.AppendPrivatePath是可以,但是却提示过期了,真不知道怎么办才好
      

  4.   

    相对说a.dll已经编程公共的了,为何不放在在公共的文件夹呢
      

  5.   

    AppDomain.CurrentDomain.BaseDirectory这个?