为什么会找不到D层文件?

最近两天在重装系统,今天好不容易把各种东西都装齐全了,再打开我的机房收费系统,就提示如下错误:

看到这个问题,我感觉很熟,因为以前也遇到过两次这个问题,都是改了下D层的编译路径,改到了U层的bin\Debug文件夹下。所以这次也照样复制粘贴,但是运行还是报这个错。这让我不得不从头想想问题到底出在哪里了。

1,为什么要为D层手动修改编译时的输出路径?

这个问题还得从咱们的包图和引用关系说起:

从图中可以看出,U层引用外观层和实体层;外观层引用实体层和B层,B层引用D层和工厂层,接口层引用实体层。工厂层引用接口层,D层引用实体层。。。有没有发现什么?谁引用了D层?No One! 正因为如此,当程序从U层启动的时候,因为不能通过层层引用实例化D层,导致了出现找不到D层。那么,有的童鞋可能会说,让U层引用D层不就行了么? 可是这个不就成了传统的两层了么,中间的解耦工作相当于白干了。逻辑上说不过去,但是经过试验,发现实现上还是可行的。

更好的方法还是采用更改编译路径,那么,为什么错误出现时我更改编译路径不行呢?

2,原来程序的编译结果有两个版本

bin目录用来存放程序的编译结果,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,在编译后生成的程序文件会存放在该目录下。

知道了这一点后,我查看了自己U层的输出路径,发现它不知道什么时候,已经默默变成了bin/Release,可能这个程序是装系统备份后的吧,导致了跟以前自己认为的输出路径不一样。

通过这件小事,发现,知道为什么比知道怎么做还重要啊~

为什么会找不到D层文件?

时间: 2024-10-31 21:32:39

为什么会找不到D层文件?的相关文章

AndroidNative层文件解析漏洞挖掘指南

| 导语 本文以手Q的一次文件解析类漏洞挖掘为例,叙述了Android Native层文件解析类型漏洞挖掘的过程 手Q这个应用从功能来说十分的庞大,如果使用类似MFFA的框架去挖掘文件解析类漏洞,效率低,而且文件入口在哪儿.如何利用脚本进行自动化都是非常大的问题.本文在一次手Q的文件解析类漏洞挖掘的过程中,提出了一种可能的解决问题的方案,妄称指南不吝赐教. 目录: 1.问题分析 2.流程图 3.so筛选 4.测试程序编写 5.test case生成 6.测试得出crash 7.未来的工作 0x0

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

连续两天都为这个运行时错误“类型初始值设定项引发异常”而烦恼,调试也不知道哪里出了问题.上网Google一下,一大堆相同的问题,可是按照那些方法折腾来折腾去,问题还是一样.最后在CSDN上发帖子问了,果然“重赏之下必有勇夫”,很快就有高手回复了,问题也随着解决了.哈哈.在此写个随笔,以后如果大家遇到类似问题,也可参考一下,自己也做个备忘,不然放在电脑上,又找不到,我的电脑文件到处乱放,有时连我自己都找不到^_^. 问题是这样嘀: 项目采用了三层架构和工厂模式,并借鉴了PetShop的架构,因为这

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

项目采用了三层架构和工厂模式,并借鉴了PetShop的架构,因为这个项目也是采用分布式的数据库,目前只有三个数据库,主要出于提高访问性能考虑. 原来是按照网上对PetShop的介绍来给各项目添加引用的. 1.Web 引用 BLL.2.BLL 引用 IDAL,Model,使用DALFactory创建实例.3.IDAL 引用 Model. 在编程中,使用反射(IoC)是一个很好的架构.在.Net中,System.Reflection命名空间提供了对反射的支持.然而,很多朋友在使用Assembly.L

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

这个一般出现在三层给B层与D层之间加抽象工厂-接口-映射.时候出的错.出错的地方是抽象工厂. --如图 咱们先理解一下这个类和这句话的意思 类 抽象工厂类目的就是可以达到可更换数据库而不用动其他代码的目的.这其实就是一个选择类.是选择SQL数据库的DLL还是其他数据库的DLL档.这里我就不再说抽象工厂和接口映射详解了 语句 这个类简单的就一句话 Return CType(Assembly.Load("DAL").CreateInstance("DAL.DGetDataTabl

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

今天在写反射调用的时候失败了,经过调试和分析,终于攻克了,以下我就详细说明. 一,报错的现象 未能载入文件或程序集"DalSQL"或它的某一个依赖项.系统找不到指定的文件. 说明: 运行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的具体信息. 异常具体信息: System.IO.FileNotFoundException: 未能载入文件或程序集"DalSQL"或它的某一个依赖项. 系统找不到指定的文件. 错

重构机房拦路虎(一)- 未能加载文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件

说实话最近小主的心情很不适合学习,私心想着如若是专心一致复习而放一下计算机进度想必是极好的,但是试验了三天还是觉得做好时间管理合理利用时间才是王道,于是本小主又滚回去重构了,最近的重构都遇到了这个或那个矫情的问题,左不过是一些小问题,但是如若是不好好管理想必酿成大祸(自此矫情的话说完)...... 遇到这个问题时真心是不知道该怎么办,只有一线提示就是我D层没有引用上,于是我就把D层重新移除又重新添加上了,但是还是不行于是我就想着把D层重新移除重新构建,但是还是没有用于是我就在网上查了一些资料发现

linux下磁盘占用达到100%了,找不到哪些大文件耗尽了磁盘。

Linux下的根分区使用率100%,但是查看/分区下的目录都不大,没有占用满,这该怎么处理? 重启是肯定有效的,目前处理情况:重新restart应用后,空间释放出来 1.lsof | grep deletd 2.reboot 重启 linux下磁盘占用达到100%了,找不到哪些大文件耗尽了磁盘. Linux下使用df -lh 查看磁盘时: /dev/sda1 130G 123G 353M 100% / 磁盘快用尽了, 但我这边就是查找不到具体是哪些大文件占用的. 1.如果是大文件占用了,那么查询

MySQL笔记-最简单的方法来解决找不到mysqld.sock文件的问题

首先,环境:ubuntu 14.04,采用apt-get的方式安装的,手动安装可能路径设置稍有区别. 1.安装MySQL后,用命令行首次启动时发现找不到Mysqld.sock文件,提示: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2),如图: 2.网上的方法很多不实用,这里介绍一种最简单的方法来解决这个问题. # sudo /etc/i

linux找不到动态链接库 .so文件的解决方法

如果使用自己手动生成的动态链接库.so文件,但是这个.so文件,没有加入库文件搜索路劲中,程序运行时可能会出现找不到动态链接库的情形. 可以通过ldd命名来查看可执行文件依赖的动态链接库,如下(其中D为可执行程序): 其中的libjson_linux-gcc-4.6_libmt.so cannot found. 解决这个问题: (1)在系统中查找这个文件(当然要保证系统中已经有这个.so文件,只是查找路径没有设置正确而已): sudo find / -name libjson_linux-gcc