C#动态引用dll

ljz_08 2016-12-06 09:35:46
我的一个工程的2个模块引用了一个类库不同版本的dll,常规的添加dll引用的方式肯定冲突了(默认dll是和exe在同一个目录下的),请问有什么方法可以设置动态加载dll?我想把2个dll放在2个文件夹下,执行不同模块的时候分别引用对应文件夹下的dll。
最好不要用反射…
...全文
169 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你已经将2个dll放到两个文件夹下面了,在程序启动的时候判断版本用哪个dll,然后可以将要用的dll复制到主目录,程序引用的是主目录的dll就可以。
Lee_Y_K 2016-12-06
  • 打赏
  • 举报
回复
这样吧,我给你一个方案,通过编写中间层来完成,具体代码不写了,只说明方法。
红色部分是你需要完成的,调用类库的代码都需要在中间层完成,项目里不直接引用DLL,而且不同版本的DLL文件名称要不一样,防止被覆盖


Lee_Y_K 2016-12-06
  • 打赏
  • 举报
回复
不用反射是不可能的,你这样做只能在运行时动态装载程序集,既然涉及到动态加载,不用反射怎么调取里面的类? 如果想创建应用程序域,如果代码不能在同一个域里面执行是否可靠? 像这种情况使用反射无论是性能,还是开发的成本都太大,这个问题应该考虑如何解决要同时引用了不同版本的dll的问题,而不是迁就这个问题去完成工作

110,533

社区成员

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

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

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