DALFactory出现"未能加载文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件”的解决方案 .
自己在使用抽象工厂+配置文件+反射实现重构机房的过程中,遇到了这种情况,
当初自己认真的检查了反射中的代码,都是没有问题,请教了师姐,检查了抽象工厂与反射的使用都没有问题
// 查找我们将要使用的数据访问层
private static readonly string path = ConfigurationManager.AppSettings["WebDAL"]; private DataAccess() { }
//实现 CreateCategory 方法,用于创建Supplier类实例
public static IDAL.ISupplier CreateSupplier()
{
string className = path + ".Supplier";
//利用反射技术,动态加载指定类型
return (IDAL.ISupplier)Assembly.Load(path).CreateInstance(className);
}
后来在网上找到了类似的问题的解决方案解决了,提示很明显是缺少DLL,原因:
1:DLL文件名与加载时的DLL文件名不一致。
2:.DLL文件根本不存在,即出现丢失情况。
3.:加载DLL路径错误,即DLL文件存在,但加载路径不正确
我查了自己项目的情况:
文件名一致,在UI层没有查找到生成的关于D层的Dll文件,程序运行的机制是在启动层的bin文件夹下的debug里面必须得有别的程序集生成的dll文件,程序在运行时会直接在启动的这一层里面直接的调用所需要的dll文件,后来自己把有关的D层生成的dll手动添加了进去,在运行,没有错误了;但是这样还是不行的毕竟后期还需要做大量的工作,总不能每次都需要手动吧,后来才知道原来可以调整程序的生成路径:
这样对于这个问题就解决掉了,学习到很多知识:
反射的一个原则:一切皆以UI层的bin文件夹中的dll名称为中心。(原因很简单:.net类加载的机制就是默认从本程序集的bin文件中找,所以bin文件夹中一定要有要加载的程序集的dll)。UI层中bin文件夹中dll叫什么名字AssemblyPath就使用什么名字,bin内部类的全名叫什么,className就写成什么全名。.net中的引用:加入对某个程序集的引用就能在程序集有变化时自动拷贝dll。
发现问题:自己搜索的时候还是有些偏差,今后多多锻炼。
总结:遇见问题是很正常的,是自己不断前进的阶梯,踏踏实实的解决问题才是最重要的
后期对反射的思考与学习:
虽然抽象工厂模式是为解决数据库更换而设计的,但操作不同数据库到底有些什么不同目前尚不十分清楚,除了链接字符串上有区别,还知道Sql Server和Access等在ADO.NET上的使用是不同的,Sql Server用的是System.Data.SqlClient命名空间下的SqlConnection、SqlCommand、SqlParameter、SqlDataAdapter、SqlDataReader等,而Accesss数据库则是用的System.Data.OleDb命名空间下相应的类。此外可能对不同数据库进行操作时SQL语句有些不同吧?!
对现在正在设计的机房收费系统,如果不同数据库之间的SQL语句没区别,那么现在所写的继承数据表处理接口的数据表处理类就不必在更换数据库时被替换。也就是反射的应用就没有必要了,因为反射在这的作用就是动态的产生数据库处理类(根据条件产生处理Sql Server或其他数据库的处理类,而这些数据库处理类用的就是SQL语句)。
对这个模式应用的整体感觉是试着应用上了模式来解决数据库更换带来的问题,但究竟解决了没有,解决彻底否尚有很大疑问……
DALFactory出现"未能加载文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件”的解决方案 .的更多相关文章
- 能加载文件或程序集“XXX”或它的某一个依赖项,系统找不到指定的文件
能加载文件或程序集“XXX”或它的某一个依赖项,系统找不到指定的文件 http://blog.csdn.net/pplcheer/article/details/7796211 做项目总是遇到各种的问 ...
- 未能加载文件或程序集“DAL”或其他的某一个依赖项,系统找不到指定的文件
针对这个问题我在敲VB.NET机房收费系统的时候总共出现了两次,第一次是在使用反射+抽象工厂的时候出现的,第二次是在使用VS2012自带的打包工具生成可执行文件执行exe文件的时候出现的.具体看下图: ...
- 未能加载文件或程序集“AspNetPager”或它的某一个依赖项。参数错误(转)
未能加载文件或程序集“AspNetPager”或它的某一个依赖项.参数错误. 看你的的开发框架用的是多少的2.0, 3.0, 3.5, 4.0 那么删除的框架的文件夹也相对应的变化 删除 C:\W ...
- 目标平台、活动平台 配置,出现未能加载文件或程序集“xxx”或它的某一个依赖项报错
今天在做动态加载程序集的时候,发现明明程序集存在的情况下,还是依然报“未能加载文件或程序集“xxx”或它的某一个依赖项报错”的错误,排除了程序和配置的错误后,怀疑是否是环境的问题,于是百度加msdn后 ...
- 未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。
64位系统 IIS7.0配置.net网站时报错:未能加载文件或程序集"XXX"或它的某一个依赖项.试图加载格式不正确的程序. 背景: 在64位的操作系统中, IIS7.0配置.ne ...
- 未能加载文件或程序集“XXXXXX”或它的某一个依赖项。试图加载格式不正确的程序。
在本机WIN7机器上的WebService部署到Win2008R2上发现错误 “/”应用程序中的服务器错误. 未能加载文件或程序集“XXXXXX”或它的某一个依赖项.试图加载格式不正确的程序. 说明: ...
- 未能加载文件或程序集“WcfService”或它的某一个依赖项。试图加载格式不正确的程序。
“/”应用程序中的服务器错误. 未能加载文件或程序集“WcfService”或它的某一个依赖项.试图加载格式不正确的程序. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息, ...
- asp.net 未能加载文件或程序集“WebApi”或它的某一个依赖项。试图加载格式不正确的程序。
http://blog.csdn.net/lingxyd_0/article/details/43155039 一般情况下出现这样的问题是因为.dll文件不存在或者路径不正确.但今天我遇到的情况都不在 ...
- 未能加载文件或程序集“BLL”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。
今天使用VS2012创建项目的时候,考虑到项目中代码的重用性以及清晰简洁性,搭建了一个三层架构,但是在项目运行的时候,总是报错: “未能加载文件或程序集“BLL”或它的某一个依赖项.生成此程序集的运行 ...
随机推荐
- TPC-H 下载参考
CSDN免费下载地址 tpc-h-v2.17.3.zip tools https://download.csdn.net/download/zes2014/10558251
- 【转】Hive 修改 table、column
表 1.重命名表重命名表的语句如下: ALTER TABLE table_name RENAME TO new_table_name 2.修改表属性: ALTER TABLE table_name S ...
- 原创:C++实现的可排序的双向链表
学习C++有一周了,今天用C++设计了一个双向链表,这个链表有排序功能,默认按升序排列,接受的参数可以是数字,也可以是字符串.现在把自己写的代码,分享出来.如果链表中接受的对象为Lexeme,可以用于 ...
- git添加公钥后报错sign_and_send_pubkey: signing failed: agent refused operation的解决办法
在服务器添加完公钥后报错 sign_and_send_pubkey: signing failed: agent refused operation 这个时候我们只要执行下 eval "$( ...
- TCP协议怎么工作的?
三次握手过程: 第一次 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认:SYN:同步序列编号(Synchronize Sequence N ...
- mysql 连接服务器报ERROR 1130 ,mysql服务正常运行
今天办公电脑的mysql罢工了,折腾了半天,记录一下. 错误如下: ERROR 1130 (HY000): Host 'localhost' is not allowed to connect to ...
- Simplifying Failures
# # Finish the delta debug function ddmin # import re def test(s): print s, len(s),repr(s) if re.sea ...
- 第06组 团队Git现场编程实战
一.组员职责分工 队员姓名 主要分工 朱庆章 测评福州最受欢迎的商圈(参考人气) 陈梦雪 测评福州最受欢迎的商圈(参考人气) 关文涛 分别测评福州人均消费50以下,50-100.100-200.200 ...
- 深度学习面试题29:GoogLeNet(Inception V3)
目录 使用非对称卷积分解大filters 重新设计pooling层 辅助构造器 使用标签平滑 参考资料 在<深度学习面试题20:GoogLeNet(Inception V1)>和<深 ...
- 做动画animation--matplotlib--python2和3通用代码
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/weixin_42053726/artic ...