未能加载文件或程序集 “DAL”或它的某一个依赖项。系统找不到指定的文件 急急~!!

lyjilu2008 2009-03-27 12:23:05
public override IDAL.IRoomService CreateRoomService()
{
return (IDAL.IRoomService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoom"]);
}

public override IDAL.IRoomTypeService CreateRoomTypeService()
{
return (IDAL.IRoomTypeService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoomType"]);

}
如果这样写就报:未能加载文件或程序集 “DAL”或它的某一个依赖项。系统找不到指定的文件
但是如果其中任意一个方法不用工厂,直接new个对象,两个都不报错
是怎么回事啊!
...全文
2086 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
邢海芳 2012-06-09
  • 打赏
  • 举报
回复
有,改动一下路径就可以了
jian436 2012-03-10
  • 打赏
  • 举报
回复
这样说是不是每次生成之后都要把DAL和BLL啥的都拷贝过来,有没有解决方法
xiongshao1943 2011-09-20
  • 打赏
  • 举报
回复
4L是最开始的正解啊
NortonLi 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 bubiaiyou 的回复:]

还没结贴,还好,这个问题我是研究了半天,主要还是看资料的,终于解决了,许多人都说的有自己的理由,但是万事俱备只欠东风,
Assembly.Load(path) 其中这个path是加载你项目web下bin目录的程序集,也就是说你要反射的程序集在你的web的bin下一定要有,看看你引用没有呢????
时间没有白费,研究了几个小时
[/Quote]
谢谢,果然解决了。。
bing_jua 2011-07-04
  • 打赏
  • 举报
回复
9楼是对的。可以看一下有没有dll文件。
tianzhenyun 2010-11-06
  • 打赏
  • 举报
回复
我也终于知道了,是缺少Dal.dll,它是UI文件夹下的bin里缺少,而不其它文件下的bin缺少,这一点很重要,总是有人说缺少.dll,但是不知道到底是哪个文件下才需要这个.dll;
一定要把你的Dal.dll或AccessDal.dll放到UI\bin\Debug里,UI是我的界面

tianzhenyun 2010-11-06
  • 打赏
  • 举报
回复
我Dal文件夹下bin里有Dal.dll,但是还是报错,为什么?
maozhu_yimi 2010-11-05
  • 打赏
  • 举报
回复
呵,谢谢九楼,不然我也会像你一样弄几个小时了
ecdyf1989 2010-10-29
  • 打赏
  • 举报
回复
我还是不明白……笨鸟
zhengxi1988 2010-09-16
  • 打赏
  • 举报
回复
顶9楼 你是对的
XUxyz1243 2010-07-28
  • 打赏
  • 举报
回复
顶9楼 你是对的
bubiaiyou 2009-11-15
  • 打赏
  • 举报
回复
还没结贴,还好,这个问题我是研究了半天,主要还是看资料的,终于解决了,许多人都说的有自己的理由,但是万事俱备只欠东风,
Assembly.Load(path) 其中这个path是加载你项目web下bin目录的程序集,也就是说你要反射的程序集在你的web的bin下一定要有,看看你引用没有呢????
时间没有白费,研究了几个小时
zhuo_chen 2009-10-22
  • 打赏
  • 举报
回复
错误描述:未能加载文件或程序集“SQLServerDAL”或它的某一个依赖项。文件不存在。

原因:1.在利用分层设计思想开发时,关于动态反射的理解不清晰。

2.由于开发工具的bug问题,造成未能加载程序集。

解决方案:

1.反射编程要求在网站的Bin文件夹中有已经编译好的.DLL文件(即保持DLL文件存在),并且保持名称和编译前类库的名称一致。可称:添加引用性。

2.查看网站中的项目(类库)属性,确认是否默认命名空间和程序集名称以及Bin文件夹下的DLL文件名称是否一致,不一致则会出现未能加载文件或者程序集,所以的修改项目的属性。可称:名称一致性。

3.建议在编程的时在创建类库的时候写上系统名称+项目名称,能够有效的避免Bug产出。即:SystemName.Model或者SystemName.IDAL。eg:BBS.Model。可称:名称完整性。
lyjilu2008 2009-03-27
  • 打赏
  • 举报
回复
你没看题!“
但是如果其中任意一个方法不用工厂,直接new个对象,两个都不报错
是怎么回事啊!

kingtiy 2009-03-27
  • 打赏
  • 举报
回复
添加引用->项目
下面DAL的工程引用
lyjilu2008 2009-03-27
  • 打赏
  • 举报
回复
这样也可以,不报错:
public override IDAL.IRoomService CreateRoomService()
{
return (IDAL.IRoomService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoom"]);
//return new DAL.MySql.RoomService();
}

public override IDAL.IRoomTypeService CreateRoomTypeService()
{
//return (IDAL.IRoomTypeService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoomType"]);
return new DAL.MySql.RoomTypeService();


}

唯独两方法里都用反射取得对象时就报错了;

bin路劲下面有dll文件的,我导了引用的


lyjilu2008 2009-03-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 avengercf 的回复:]
是你工厂类里没有实力的方法吧,工厂里NEW和直接NEW都没搞清楚,工厂模式也是类,直接NEW一个类有什么奇怪的
[/Quote]

我工厂用的反射报错,如果直接NEW个实例就可以,
这样可以,不报错:
public override IDAL.IRoomService CreateRoomService()
{
//return (IDAL.IRoomService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoom"]);
return new DAL.MySql.RoomService();
}

public override IDAL.IRoomTypeService CreateRoomTypeService()
{
return (IDAL.IRoomTypeService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoomType"]);

}

这样也可以,不报错:
public override IDAL.IRoomService CreateRoomService()
{
return (IDAL.IRoomService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoom"]);
return new DAL.MySql.RoomService();
}

public override IDAL.IRoomTypeService CreateRoomTypeService()
{
//return (IDAL.IRoomTypeService)Assembly.Load("DAL").CreateInstance(ConfigurationManager.AppSettings["sqlRoomType"]);
return new DAL.MySql.RoomTypeService();


}

唯独两方法里都用反射取得对象时就报错了;

bin路劲下面有dll文件的,我导了引用的
MarcuseXiao 2009-03-27
  • 打赏
  • 举报
回复
把.dll文件拷贝到bin下面
wuyq11 2009-03-27
  • 打赏
  • 举报
回复
反射要求在网站的Bin文件夹中有已经编译好的.DLL文件,并且保持名称和编译前类库的名称一致
avengercf 2009-03-27
  • 打赏
  • 举报
回复
是你工厂类里没有实力的方法吧,工厂里NEW和直接NEW都没搞清楚,工厂模式也是类,直接NEW一个类有什么奇怪的

111,126

社区成员

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

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

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