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

三层问题—“系统找不到指定的文件”

发布时间:2020-12-17 00:12:44 所属栏目:大数据 来源:网络整理
导读:三层学习就是一个渐渐深化学习的过程,先是按着视频敲了一遍c#版的三层登录窗体,又将其转换成了vb.net版的,后来看大家都将三层优化成七层。所以在巨人的肩膀上又开始将三层优化成七层,感觉一切准备就绪一运行,却出现问题了。 【知识点】 问题:“未能加

三层学习就是一个渐渐深化学习的过程,先是按着视频敲了一遍c#版的三层登录窗体,又将其转换成了vb.net版的,后来看大家都将三层优化成七层。所以在巨人的肩膀上又开始将三层优化成七层,感觉一切准备就绪一运行,却出现问题了。

【知识点】

问题:“未能加载文件或程序集“LoginDAL”或它的某一个依赖项。系统找不到指定的文件。"


开始以为是代码或者配置文件时出了问题,但是调试了一会儿感觉也没什么问题,但就是运行不了。这时只能求助强大的度娘了,果然一查很多类似的问题。人家说很明显是缺少dll文件呗!我怎么就看不出来呢,看来需要学习的还有很多。

出现这种问题的原因可能有:

a.dll文件根本不存在,即dll文件丢失了

b.dll文件名和加载时dll文件名不一致

c.dll文件存在,但是加载路径错误

解决方法:

a.查看dll文件是否存在,先找到实例文件目录,打开”LoginDAL"——“bin"——”Debug“,看一下”Debug“文件夹中是否有该层的dll文件,如图:


我的之所以运行不出来就是因为缺少dll文件,度娘说在程序运行的过程中会自动生成每一层的dll文件,我就运行了一下但是还是没有。所以我就把D层删了,重新建了一遍,在运行就出现了,问题就解决了。


b.dll文件名和加载时dll文件名不一致,在LoginFactory也就是工厂层中用到了在Assembly.Load()方法Assembly.Load("LoginDAL").CreateInstance("LoginDAL.UserADO"),就是在LoginDAL.dll程序集中查找LoginDAL.UserADO类。Assembly.Load("程序集").CreateInstance("命名空间.类"),这里要查看LoginDAL层的属性——应用程序中的程序集名称和命名空间是否和Assembly.Load()方法中加载的一致。还有要确认程序集名称和命名空间与bin文件夹下的dll文件名称是否一致,不一致就会未能加载文件或者程序集的问题。


【小结】

还有很多类似的问题和解决方法,在问题中不断成长吧!在学习三层的过程中,开始不理解三层之间的关系,各层的数据是怎么传递的,随着学习的深入慢慢理解了一些。降低层与层之间的依赖,各层各司其职,好处多多。当然也有它的不足之处,在机房重构的路上继续深化三层学习。

(编辑:李大同)

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

    推荐文章
      热点阅读