c# – 从另一个DLL引用一个DLL

前端之家收集整理的这篇文章主要介绍了c# – 从另一个DLL引用一个DLL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个C#应用程序,让我们称之为App.exe.它引用了一个名为A.dll的DLL,它依次引用另一个DLL,即B.dll.然而,引用它们的方式有点不同.在A.dll的代码中,它直接引用了B.dll(转到Project> References> Add B.dll).但是,我的App.exe有使用Assembly.Load()等在运行时加载A.dll的代码.

所以要回顾一下,App.exe —-(运行时加载)—> A.dll —-(直接引用)—> B.DLL

所有三件事(App.exe,A.dll和B.dll)都位于同一个目录中,就是说ExeDir.现在我想做的是将A.dll和B.dll放在ExeDir的子目录中.我可以通过使用指定A.dll的路径的App.config文件来执行此操作,并要求App.exe从该路径加载A.dll.到现在为止还挺好.

但是问题是,当我这样做,.NET给我一个错误,说它找不到与D.dll在同一目录中的B.dll.如果我将其移动到原始目录(与App.exe相同的目录),那么它可以正常工作.这意味着我可以把A.dll放在一个子目录中,但是B.dll需要在原来的目录下.

有没有什么办法可以将这两个DLL保存在子目录中?

解决方法

添加< probing>你的app.config中的元素:

http://msdn.microsoft.com/en-us/library/823z9h8w.aspx

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin;bin2\subbin;bin3"/>
      </assemblyBinding>
   </runtime>
</configuration>

猜你在找的C#相关文章