在敲机房收费系统的时候通常都会遇到这个问题:“未能加载文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件”。

解决方案:

修改将DAL的输出目录 修改到UI/bin/Debug 。

一、引用路径问题:

DAL的默认输出目录是在DAL/bin/Debug 目录之下,为什么要修改它的输出目录呢?在说到这个问题上的时候,我们还得先来了解一下什么是引用关系。

在传统的三层中,引用关系:UI—>BLL—>DAL ,引用也就是相当于是自己的。例如UI层引用了BLL层,那么UI层对于BLL层中公有的东就都可以随便用,所以在生成目录的时候,BLL层生产的Dll文件就应该是包含在UI层中。同理,DAL层通过引用也包含在UI层中。

由上面的图我们可以看出,UI层并没有间接的引用DAL层,所以在生成程序集的时候,UI层的bin文件目录下并不存在DAL的程序集。

二、 bin目录 & obj 目录

总的来说:Bin是放最终代码的文件,Obj是放中间代码(临时)的文件 。

1.bin目录存放最终编译的结果,它是二进制binary的英文缩写。

Bin 是默认情况下的输出文件目录,也就是你工程编译的结果(dll或者exe),也包括其他你设置了需要输出的文件,比如:配置,资源文件等内容。

Bin文件有两个版本Debug和Release两个版本,分别对应的文件夹为bin/Debug 和bin/Release,这个文件夹是默认的输出路径,我们可以通过项目属性—>编译—>生成输出路径进行修改。

2.obj 目录是用来存放编译过程中生成的临时文件,它是Object的英文缩写。

obj目录是用来保存每个模块编译的结果,在.Net中,编译是分模块进行的,编译整个完成会合并为一个.DLL或EXE保存到bin目录下。

在添加引用时,.NET会记录添加的引用绝对路径,这些设置保存在“每用户”文件中,(Solution.csproj.user),可以通过记事本打开查看。也可以在:项目属性—>通用属性—>引用路径里面查看。如果设置复制到本地为true,在生成项目时会自动拷贝该DLL到项目生成文件夹中(bin目录),否则不会拷贝。在生成项目时,对所添加的引用的是绝对路径,而在运行时程序集默认只在当前所在的路径下去找。要修改引用的路径,必须通过编程的方法去实现。使用References 对象。

obj 文件是编译时的中间目录,也就是说在Bin中的内容出现之前,编译器是在这里进行一些文件创建,修改等工作的。等全部完成之后才复制到Bin目录中。(注意,此时obj的内容不会被清除)。

三、SVN管理问题

项目开发如果是分层开发,每个人负责一层(B层,U层,D层)等。并且对每一层进行权限的分配。如果不注意SVN的使用,SVN就会出现下面的现象:

每天早上过来打开VS的项目都会是下面的结果:

出现的原因主要是我们前面说的两个文件在捣鼓—> obj和bin 文件是随系统,随个人实时更新的。 所以我们再更新的时候,由于权限的问题导致,我们无法提交更新了的文件,所以SVN的图标就会出现变红的现象。

解决该现象的方案:

修改SVN项目权限问题:项目组长修改自己的权限(允许访问所有层)

组长负责将每一层的bin 文件和obj文件移除项目之外。(方法:点击显示所有文件夹图标—>分别右键obj和bin—>选择从项目中排除 )

更新整个项目文件

收回权限

改动代码—>更新文件

当问题出现的时候,不要想着这是属于正常现象。就如,在SVN的使用过程中,发现有的项目图标呈黄色的时候,应该主动的去提问为什么?主动的去发现问题,提问问题,这样再下次遇到同样的事情时,才能够很好的提前去规划问题,让自己少走弯路。

为什么vsdebug没有生成obj文件_VS中bin和obj文件引发的问题相关推荐

  1. matlab打开bmp,Matlab 读取文件夹中所有的bmp文件

    将srcimg文件下的bmp文件转为jpg图像,存放在dstimg文件夹下 str = 'srcimg'; dst = 'dstimg'; file=dir([str,'\*.bmp']); :len ...

  2. Python判断两个文件夹中互相不同的文件有哪些、判断一个文件夹相对于另外一个文件夹缺少了哪些文件

    Python判断两个文件夹中互相不同的文件有哪些.判断一个文件夹相对于另外一个文件夹缺少了哪些文件 目录 Python判断两个文件夹中互相不同的文件有哪些.判断一个文件夹相对于另外一个文件夹缺少了哪些 ...

  3. git在已忽略文件夹中不忽略指定文件

    注意:结尾的星号不能去,去掉就无效了 1.在已忽略文件夹中不忽略指定文件夹 /node_modules/* !/node_modules/layer/ 2.在已忽略文件夹中不忽略指定文件 /node_ ...

  4. linux 获取文件父目录权限,Linux 文件权限中,操作一个文件需要父目录的那些权限?...

    eudore:linux 文件权限中,操作一个文件需要父目录的那些权限? 是否需要检查每级目录?想找到一份完整规范正确的指导,自己在写检查 linux 用户文件权限的代码. 例如读取一个文件 /hom ...

  5. 批量替换一个文件中的文件名,例如将文件夹中s**_abnormal.jpg文件修改为s**_abnor.jpg

    文章涉及到StringAbout::开头的函数具体实现参考:string与Cstring字符串类型转换和其他操作总结 CProcessFile::开头的函数实现参考:文件读写操作工具类CProcess ...

  6. java压缩zip文件夹错误_Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题)...

    项目场景: Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题) 问题描述: 最近的项目需要将多级文件夹压缩成zip,网上找了几个工具类,都会报错,所以 ...

  7. 失物招领php_我的Mac上“失物招领”文件夹中的大型iNode文件是什么?

    失物招领php If you're trying to figure out what's taking up space on your Mac, you might stumble upon so ...

  8. 使用cmd命令在桌面上新建一个文件夹,且在文件夹中新建一个.java文件,使用cmd命令实现.java文件的编译运行

    标题使用cmd命令在桌面上新建一个文件夹,且在文件夹中新建一个.java文件,使用cmd命令实现.java文件的编译运行 1.在电脑桌面使用快捷键win+r打开 2.打开cmd命令界面之后使用md d ...

  9. .Net读取XP文件夹中的Thumbs.db文件

    一般在XP文件夹里面,特别是图片和视频文件夹里有一个文件-Thumbs.db文件.这个文件是XP用来缓存图片和影音文件的缩略图的,有了这个文件,XP在打开保存大量图片文件的文件夹的时候,显示速度会明显 ...

最新文章

  1. Acwing第 23 场周赛【完结】
  2. c6011取消对null指针的引用_C++中的引用
  3. web单页应用(一)
  4. 解决“重新安装vmware-tools”灰色而无法安装的问题
  5. 设计模式1:单例模式
  6. Mysql 演示示例存储过程
  7. linux 系统运维小工具
  8. hdu3081 Marriage Match II
  9. vue项目中,网页地址栏添加小图标
  10. Configured
  11. 企业文件加密系统 — 文件透明加密的优势和功能
  12. iPhone X搭载3D感测功能,VCSEL是个什么鬼?
  13. 2013年10月i--q手机下载游戏水果忍者
  14. Android要ios王者,王者荣耀怎么转区 安卓转苹果需要什么要求
  15. 费雪分离定理的证明与评价
  16. Mybatis源码阅读(二)
  17. C# textbox快捷键添加横杠
  18. 计算机丢失wswool.dll什么意思,如何修复Windows 10中丢失的DLL文件
  19. UNIAPP富文本编辑器editor组件图标不显示的问题解决
  20. window 查看端口占用

热门文章

  1. 如何将onedrive for business扩容为硬盘空间
  2. Python多人聊天室-基于socket UDP协议
  3. 廖雪峰python#统计学生人数
  4. 【Web前端HTML5CSS3】12-字体
  5. java_vinson_01:eclipse下载
  6. 世界上前11名最贵跑车
  7. java微信小程序授权微信登录获取手机号
  8. XZ_iOS 之各大银行URL Schemes
  9. 【学习笔记】Windows格式文档转换成Unix格式
  10. 4. 自动封IP和解IP