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

简介:                  最近两天在重装系统,今天好不容易把各种东西都装齐全了,再打开我的机房收费系统,就提示如下错误:     看到这个问题,我感觉很熟,因为以前也遇到过两次这个问题,都是改了下D层的编译路径,改到了U层的bin\Debug文件夹下。

          

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

   


看到这个问题,我感觉很熟,因为以前也遇到过两次这个问题,都是改了下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可能这个程序是装系统备份后的吧,导致了跟以前自己认为的输出路径不一样。


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

   

  

目录
相关文章
|
6月前
VS2012找不到EF框架实体模型的解决方法
VS2012找不到EF框架实体模型的解决方法
|
Java API Android开发
【错误记录】Android 注解处理器报错 ( 非法的类文件开始 , 请删除该文件或确保该文件位于正确的类路径子目录中。 )
【错误记录】Android 注解处理器报错 ( 非法的类文件开始 , 请删除该文件或确保该文件位于正确的类路径子目录中。 )
697 0
【错误记录】Android 注解处理器报错 ( 非法的类文件开始 , 请删除该文件或确保该文件位于正确的类路径子目录中。 )
|
4月前
|
Java
Error:java: 错误: 无效的源发行版:13, 类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。
Error:java: 错误: 无效的源发行版:13, 类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。
|
6月前
如何把多个文件(夹)向上移动1层(或多层)(在批量复制前或后进行)
该文介绍了如何使用一个工具将四个文件夹内的所有文件合并到另一个文件夹中。工具可以从百度网盘或蓝奏云下载,提取码分别为qwu2和2r1z。操作步骤包括:打开工具,选择文件批量复制,设置源路径上移,确定设置后将文件夹拖入,导入文件,移除不需要的文件夹路径,最后执行移动操作。移动过程中会删除空文件夹,并在回收站中可见。
|
6月前
|
C#
C# 三层级架构问题之 能加载文件或程序集或它的某一个依赖项。系统找不到指定的文件
C# 三层级架构问题之 能加载文件或程序集或它的某一个依赖项。系统找不到指定的文件
83 0
无法找到可用的配置文件来构建预处理器
无法找到可用的配置文件来构建预处理器
89 0
有点玄学,虽然不知道为什么第一个工程配置文件的资源放到某个位置,建立第一个工程时也是同样放到那个位置,就配置文件内容不断报错了
有点玄学,虽然不知道为什么第一个工程配置文件的资源放到某个位置,建立第一个工程时也是同样放到那个位置,就配置文件内容不断报错了
426 0
有点玄学,虽然不知道为什么第一个工程配置文件的资源放到某个位置,建立第一个工程时也是同样放到那个位置,就配置文件内容不断报错了
|
XML Java 数据格式
SMB使用递归方式下载、删除远程服务器文件(包含带有子文件夹等)
SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。
436 0
|
开发工具 git
找不到.gitconfig文件具体位置时的解决方法
找不到.gitconfig文件具体位置时的解决方法
626 0