加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 17:46:54 所属栏目:百科 来源:网络整理
导读:我有一个C#应用程序,让我们称之为App.exe.它引用了一个名为A.dll的DLL,它依次引用另一个DLL,即B.dll.然而,引用它们的方式有点不同.在A.dll的代码中,它直接引用了B.dll(转到Project References Add B.dll).但是,我的App.exe有使用Assembly.Load()等在运行时加
我有一个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;bin2subbin;bin3"/>
      </assemblyBinding>
   </runtime>
</configuration>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读