机房重构所遇问题"未能载入文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件"的解决的方法集锦
敲七层登录的时候。忽然间认为敲三层搞清的思路瞬间又凌乱了。花了一天的时间边敲边梳理,最终整完了,执行的时候弹出了这种错误:未能载入文件或程序集“DAL”或它的某一个依赖项。
系统找不到指定的文件。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
“载入”二字引起了我的注意,可是我并不知道它的载入机制,于是便去询问度娘了,度娘首先说明了产生错误的原因:
1、DLL文件名称与载入时的DLL文件名称不一致。
2、DLL文件根本不存在,即出现丢失情况。
3、载入DLL路径错误,即DLL文件存在,但载入路径不对
依照度娘给出的原因,我去检查了前两个问题,发现那不是我的项目报错的原因,于是将目光定格在了第三个问题上。但是载入路径是怎么回事呢?这便涉及到了反射的一个原则:一切皆以UI层的bin目录中的dll名称为中心。(原因非常easy:.net类载入的机制就是默认从本程序集的bin文件里找,所以bin目录中一定要有要载入的程序集的dll)。【UI层中bin目录中要载入的程序集的dll叫什么名字AssemblyPath就使用什么名字,bin内部要载入的类的全名叫什么,className就写成什么全名。
.net中的引用:增加对某个程序集的引用就能在程序集有变化时自己主动拷贝dll。】
相信看了上文,即便不知道怎样解决,也能知道解决这个问题的方向了。关于此问题的解决的方法有两种,各自是:
1、把DLL层的以DAL命名的文件拷贝到UI层的debug中。
2、改变DAL层的生成输出路径。
解决方式我们既然有了,能肯定的一点是,都能解决这个问题,可是论解决这个问题的长久性,还是另外一种更好,为什么呢?
依照第一种解决方式,执行程序,输入username和password。系统真的会提示“恭喜你,登录成功!”。问题看似攻克了,事实上这并非根本。把程序中的代码随意改错,又一次执行还会提示“恭喜你,登录成功!
”,这是怎么回事?打开UI层debug,发现除了DAL的dll文件的全部其它文件都是随着解决方式的生成而生成的。这么说直接拷贝是不行,治标不治本。
这就引出了另外一种解决这个问题的方案,改变DAl的生成输出路径,改为UI层的debug文件。再又一次生成解决方式。文件的生成时间都一致了。执行就没有问题了。
综上所述:我们解决这个问题的关键就在于让文件的生成时间一致,步调一致,执行无忧~
文字要是看着太多。请原谅我让尊贵的读者大人遇到bug后急于找到解决的方法的烦躁心情愈加凌乱,于是我决定“负图请罪”:
上述问题解决后。为了让自己对7层的理解度加深些。我開始着手里边相对较小的功能——改动password,就在我把代码敲完后。执行时出现了这种问题——输入的原password即便和当前用户的password不一致,也能改动成功。
关于改动password功能,我的大概思路是这种。先推断输入的原password是否和当前用户的password一致。然后再推断password是否改动成功。然而出现了上述问题。我也非常纳闷。这两条线的代码思路是一样的,代码实现大同小异,既然可以提示我改动成功,说明不是代码的问题,于是,我便对推断原password那条线进行了分步调试,走到BLL层弹出这样一个错误——源文件与模块生成时的文件不同,指向了C:\Users\秋若枫\Desktop\机房重构七层V1.0——孙利楠\ChargeReBuild\DAL,然后询问我:仍要让调试器使用它吗?(PS:我哪知道?!)
于是乎,我又投入了度娘的怀抱,找到了解决的方法。首先打开自己的DAL层的目录,例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
然后,删除如图所看到的的三个文件。又一次生成解决方式。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
最后,打开UI层,进行下图说明的操作。
当我完毕上述操作后,再执行程序。假设原始password输入错误,就会有对应的提示了~
关于调试器调试的提示:工具-> 选项-> 调试-> 常规 ->把“要求源文件和版本号匹配”的勾勾去掉->然后去掉“地址级的调试”的勾勾(这样就不会出现反汇编代码了。这一步可不要),然后又一次引用。
改动password功能的实现,巩固了我敲登录时候的理解。对接下来的功能的实现,有点迫不及待了,系统。也是我们的small baby~
机房重构所遇问题"未能载入文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件"的解决的方法集锦的更多相关文章
- 异常:未能载入文件或程序集”DAL”或它的某一个依赖项——解决的方法
以下是我再使用抽象工厂+反射重构机房时,在Factoy中出现了以下一个问题: 去网上查了一下资料,发现这是一个非常普遍的问题,它出现的原因主要有两种: 第一种: 载入DLL路径错误.解决的方法是调整D ...
- 未能载入文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件。
这个一般出如今三层给B层与D层之间加抽象工厂-接口-映射.时候出的错.出错的地方是抽象工厂. --如图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTA ...
- "未能载入文件或程序集“XXX”或它的某一个依赖项。系统找不到指定的文件"的解决方式
今天在写反射调用的时候失败了,经过调试和分析,终于攻克了,以下我就详细说明. 一,报错的现象 未能载入文件或程序集"DalSQL"或它的某一个依赖项.系统找不到指定的文件. 说明: ...
- win 8系统:System.IO.FileNotFoundException: 未能加载文件或程序集“CefSharp.Core.dll”或它的某一个依赖项。找不到指定的模块
最近用CefSharp做了一个chrome核心的浏览器. 在win 7.win 10系统上都正常运行,但是在win 8系统上报错了. win 8系统:System.IO.FileNotFoundExc ...
- DALFactory出现"未能加载文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件”的解决方案 .
自己在使用抽象工厂+配置文件+反射实现重构机房的过程中,遇到了这种情况, 当初自己认真的检查了反射中的代码,都是没有问题,请教了师姐,检查了抽象工厂与反射的使用都没有问题 // 查找我们将要使用的数据 ...
- 未能加载文件或程序集“DAL”或其他的某一个依赖项,系统找不到指定的文件
针对这个问题我在敲VB.NET机房收费系统的时候总共出现了两次,第一次是在使用反射+抽象工厂的时候出现的,第二次是在使用VS2012自带的打包工具生成可执行文件执行exe文件的时候出现的.具体看下图: ...
- 其他信息: 未能加载文件或程序集“WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找 到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
记录一下,发布web时遇到的一些问题. 一.报错信息: 其他信息: 未能加载文件或程序集“WebGrease, Version=1.5.1.25624, Culture=neutral, Public ...
- 未能加载文件或程序集“Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5”或它的某一个依赖项。系统找不到指定的文件。
在创建ASP.NET MVC项目过程中发生了这个异常 未能加载文件或程序集"Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0 ...
- 未能加载文件或程序集“System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件
ASP.NET 运行时错误:针对类型System.Web.Mvc.PreApplicationStartCode的应用程序邓启动初始化方法Start 引发了异常,显示下列错误消息: 未能加载文件或程序 ...
随机推荐
- 国内技术管理人员批阅google的“春运交通图”项目
在整理一份报告的时候,偶然看到2008年春节期间google推出的“春运交通图”项目建设历程报道,很受启发,随以国内的技术管理人员眼光批阅了这篇文章,同时也是自嘲吧. 以下黑色字体是原报道,红色字体是 ...
- jquery的滚动事件
$(selector).scroll(function);当滚动到合适的条件下,就触发某个函数. 现在基本就是前端利用AJAX对数据进行拼接操作,渲染进html的DOM结构中.
- jquery 获取上一个兄弟元素和下一个兄弟元素
jQuery.prev(),返回上一个兄弟节点,不是所有的兄弟节点 jQuery.prevAll(),返回所有之前的兄弟节点 jQuery.next(),返回下一个兄弟节点,不是所有的兄弟节点 jQu ...
- jmeter与apache测试网站并发
本文主要介绍性能测试中的常用工具jmeter的使用方式,以方便开发人员在自测过程中就能自己动手对系统进行自动压测和模拟用户操作访问请求.最后还用linux下的压测工具ab做了简单对比. 1. ...
- 幻灯展示jQuery插件supersized
主要特性: 能够自动修改图片大小适合浏览器的页面大小 通过幻灯展示的循环背景可以动态加载并且可以设置变化方式 核心版本可以支持仅仅需要背景变化大小的需要 键盘导航 整合Flickr - 可以从用户,组 ...
- 21、根据(应用程序)虚拟驱动vivi的使用过程彻底分析摄像头驱动(有ioctrl分析)
videobuf2-core.h中的vb2_buffer,记录了v4l2_buffer ,驱动可以对vb2_buffer的v4l2_buffer进行操控, vb2_buffer是v4l2框架层的代码, ...
- IQueryFielter接口
IQueryFilter基于属性查询过滤数据.需要定义一个where子句.可以指定要返回值的字段列表.如果没有指定列,将返回所有值.当需要根据属性值和属性的关系过滤数据时,使用该接口. 成员 AddF ...
- 对touch事件传递的简单理解
对View事件传递的理解.看的这篇. 对事件传递有了大致的了解. onInterceptTouchEvent 函数决定是否将事件拦截,拦截之后,该控件的全部子控件接收不到这个事件.onTouchEve ...
- vscode visual studio code svn 小乌龟 快捷键设置
首先要安装svn小乌龟 然后安装vs code的svn插件TortoiseSVN for VS Code 文件->首选项->键盘快捷方式->搜索svn->找到相应命令然后设置快 ...
- ZOJ Special AC String 水
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3702 题目大意: 对于给定的一个字符串,满足如下要求输出AC,否则WA(好吧我 ...