敲七层登录的时候。忽然间认为敲三层搞清的思路瞬间又凌乱了。花了一天的时间边敲边梳理,最终整完了,执行的时候弹出了这种错误:未能载入文件或程序集“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”或它的某一个依赖项。系统找不到指定的文件"的解决的方法集锦的更多相关文章

  1. 异常:未能载入文件或程序集”DAL”或它的某一个依赖项——解决的方法

    以下是我再使用抽象工厂+反射重构机房时,在Factoy中出现了以下一个问题: 去网上查了一下资料,发现这是一个非常普遍的问题,它出现的原因主要有两种: 第一种: 载入DLL路径错误.解决的方法是调整D ...

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

    这个一般出如今三层给B层与D层之间加抽象工厂-接口-映射.时候出的错.出错的地方是抽象工厂. --如图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTA ...

  3. "未能载入文件或程序集“XXX”或它的某一个依赖项。系统找不到指定的文件"的解决方式

    今天在写反射调用的时候失败了,经过调试和分析,终于攻克了,以下我就详细说明. 一,报错的现象 未能载入文件或程序集"DalSQL"或它的某一个依赖项.系统找不到指定的文件. 说明: ...

  4. win 8系统:System.IO.FileNotFoundException: 未能加载文件或程序集“CefSharp.Core.dll”或它的某一个依赖项。找不到指定的模块

    最近用CefSharp做了一个chrome核心的浏览器. 在win 7.win 10系统上都正常运行,但是在win 8系统上报错了. win 8系统:System.IO.FileNotFoundExc ...

  5. DALFactory出现"未能加载文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件”的解决方案 .

    自己在使用抽象工厂+配置文件+反射实现重构机房的过程中,遇到了这种情况, 当初自己认真的检查了反射中的代码,都是没有问题,请教了师姐,检查了抽象工厂与反射的使用都没有问题 // 查找我们将要使用的数据 ...

  6. 未能加载文件或程序集“DAL”或其他的某一个依赖项,系统找不到指定的文件

    针对这个问题我在敲VB.NET机房收费系统的时候总共出现了两次,第一次是在使用反射+抽象工厂的时候出现的,第二次是在使用VS2012自带的打包工具生成可执行文件执行exe文件的时候出现的.具体看下图: ...

  7. 其他信息: 未能加载文件或程序集“WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找 到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

    记录一下,发布web时遇到的一些问题. 一.报错信息: 其他信息: 未能加载文件或程序集“WebGrease, Version=1.5.1.25624, Culture=neutral, Public ...

  8. 未能加载文件或程序集“Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5”或它的某一个依赖项。系统找不到指定的文件。

    在创建ASP.NET MVC项目过程中发生了这个异常 未能加载文件或程序集"Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0 ...

  9. 未能加载文件或程序集“System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件

    ASP.NET 运行时错误:针对类型System.Web.Mvc.PreApplicationStartCode的应用程序邓启动初始化方法Start 引发了异常,显示下列错误消息: 未能加载文件或程序 ...

随机推荐

  1. Thinkphp5创建控制器

    今天我们就来创建一个控制器: <?php namespace app\index\controller; use think\Controller; class Test extends Con ...

  2. 00103_死锁、Lock接口、等待唤醒机制

    1.死锁 (1)同步锁使用的弊端:当线程任务中出现了多个同步(多个锁)时,如果同步中嵌套了其他的同步.这时容易引发一种现象:程序出现无限等待,这种现象我们称为死锁.这种情况能避免就避免掉: synch ...

  3. 00091_字符输入流Reader

    1.字符输入流Reader (1)字符输入流Reader我们读取拥有中文的文件时,使用的字节流在读取,那么我们读取到的都是一个一个字节: (2)只要把这些字节去查阅对应的编码表,就能够得到与之对应的字 ...

  4. java线程——详解Callable、Future和FutureTask

    回顾: 接上篇博客 java线程--三种创建线程的方式,这篇博客主要介绍第三种方式Callable和Future.比较继承Thread类和实现Runnable接口,接口更加灵活,使用更广泛.但这两种方 ...

  5. OC中对于属性的总结(@property)

    在没有属性之前: 对成员变量进行改动都要用到设置器:setter来改动 Person *per =[[Person alloc] init]; 对象通过设置器对成员变量内容进行修该 [per setN ...

  6. tensorflow compile

    bazel  build  --spawn_strategy=standalone tensorflow/examples/label_image/...

  7. storm原理介绍

    目录 storm原理介绍 一.原理介绍 二.配置 三.并行度 (一)storm拓扑的并行度可以从以下4个维度进行设置: (二)并行度的设置方法 (三)示例 四.分组 五.可靠性 (一)spout (二 ...

  8. 【t099】最接近神的人

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 破解了符文之语,小FF开启了通往地下的道路.当他走到最底层时,发现正前方有一扇巨石门,门上雕刻着一幅古 ...

  9. Mybatis全面详解——上(学习总结)

    原文地址:https://blog.csdn.net/ITITII/article/details/79969447 一.什么是Mybatis 这里借用官网的一句话介绍什么是mybatis:MyBat ...

  10. css3-11 如何设置文字的阴影

    css3-11 如何设置文字的阴影 一.总结 一句话总结:text-shadow属性.text-shadow:3px 3px 3px #f0f; 1.text-shadow属性的参数依次是什么意思? ...