关于DLL引用的问题

kinghawk 2006-11-30 02:00:14
有两个DLL,设为A.DLL和B.DLL,其中A.DLL引用了B.DLL(在VS.Net 2005的IDE中添加引用)。有一个C.EXE,反射加载A.DLL。其中:A.DLL和B.DLL都在C:\TEST\DLL\,而C.EXE在C:\TEST\下,目录结构如下:
C:\TEST\C.EXE
C:\TEST\DLL\A.DLL
C:\TEST\DLL\B.DLL
问题是:在加载A.DLL运行的时候,提示B.DLL没有找到。但是将B.DLL放到C:\TEST\运行没有问题。
我尝试改变当前路径和环境路径都无法成功。
...全文
194 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kinghawk 2006-11-30
  • 打赏
  • 举报
回复
首先感谢各位,我可能没有清楚,类似这种DLL模块的文件夹都是动态由用户设置添加的,不是固定的。如果用户添加了多个DLL模块(一个模块可能由多个DLL组成,但只能有一个加载DLL,其他的DLL都在加载DLL中引用),都放在同一个文件夹下面肯定会出现重名的现象。放入GAC也不切实际。所以,这里希望能够修改DLL的加载路径达到要求,实在不行的话,就只能动态加载引用了。
lextm 2006-11-30
  • 打赏
  • 举报
回复
加载A.dll那么会在C.exe所在的地方尝试加载B.dll,而不是A.dll的位置。如果放到GAC不是你的选择,那么把三个部分放到一起好了。
bbwolfcool 2006-11-30
  • 打赏
  • 举报
回复
注册为 公共配件
raozhiven 2006-11-30
  • 打赏
  • 举报
回复
gacutil /i C:\TEST\DLL\A.DLL
gacutil /i C:\TEST\DLL\B.DLL
peilianhai 2006-11-30
  • 打赏
  • 举报
回复
就这样,放到一个目录下
要不随便放,你注册一下
要让系统能够找到它

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧