今天遇到一个挺怪的问题,采用了工厂模式后,出去找不到程序集的问题:
未能加载文件或程序集“Tianyige.SqlServerDAL”或它的某一个依赖项。系统找不到指定的文件。

解决思路:
以前遇到过这类问题,问题在于对程序集和命名空间名称混淆了,比如:命名空间叫SQLServerDAL,而程序集可能叫“Tianyige.SQLServerDAL”,或者叫成“SqlServerDAL”,都会发生找不到对象的错误。解决方法是对应好程序集的名称:
Assembly.Load("Tianyige.SqlServerDAL").CreateInstance("Tianyige.SqlServerDAL.Category");通过bin文件夹下找到相应的DLL,确定其名称。
而这次名称对应好了,看得我眼都花了,一点错没有,还是有问题。最后将错误提示中的文件的dll文件[Tianyige.SqlServerDAL]复制到网站APP下的bin目录中,问题得以解决。

模仿pet shop4做了个工厂模式的简单例子,初步了解其中流程,做个总结。
一、创建项目IDAL,包含若干接口如 IOrder,是有关Order的数据库操作接口。
二、创建项目SQLServerDAL,其中包含一个Order类,继承IOrder接口,具体实现该接口中声明的若干函数。
三、创建项目DALFactory,就是一个数据库接口工厂,负责根据选择的数据库类型(在web.config中获取如<add key="WebDAL" value="SQLServerDAL"/>)来创建相应数据库操作接口实例。如下述代码:
        public static IOrder CreateOrder()
        {
            string path = "SQLServerDAL";
            string className = path + ".Index";
            return (IOrder)Assembly.Load(path).CreateInstance(className);
        }
四、创建项目BLL,负责业务逻辑实现。其中需要调用数据库操作函数的时候声明
private static IOrder iOrder = DataAccess.CreateOrder();
然后调用IOrder中声明(SQLServerDAL.Order类中定义)的函数。
上面就是一个基本的过程,其中需要注意几点:
1、数据接口工厂DALFactory中CreateOrder函数声明成static,其他有关的地方也要用static,因为此处是利用反射动态加载程序集,所以加载一次就够了,网上偶然看了资料,据说即使多次执行加载语句也只会加载一次。
2、会出现“未能加载文件或程序集“SQLServerDAL”或它的某一个依赖项。系统找不到指定的文件”的情况。其实原因贼简单,就是无法找到该程序集,主要是没理解它运行的机制,其实如果
Assembly.Load(path).CreateInstance(className);
写成
Assembly.Load(“SQLServerDAL.dll").CreateInstance(className);
就清楚了,这找的不是一个名称空间,而是在bin里的一个dll文件。而项目SQLServerDAL默认生成的dll文件的名字是SQLServerDAL.dll,于是就会出现以上的错误。那么只要在该项目属性里把程序集名称改成“SQLServerDAL“就行了。
编程的路太长了,很多的基础要打,太多的技术要学,快失去信心了!

转载于:https://www.cnblogs.com/strivers/archive/2010/11/27/1889633.html

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

  1. 未能加载文件或程序集“*****.dll”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。(异常来自HRESULT:0x80131040)

    未能加载文件或程序集"*****.dll"或它的某一个依赖项.找到的程序集清单定义与程序集引用不匹配.(异常来自HRESULT:0x80131040) 参考文章: (1)未能加载文 ...

  2. 【转】未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。...

    "/xxxxx"应用程序中的服务器错误.  -------------------------------------------------------------------- ...

  3. 未能加载文件或程序集“xxx”或它的某一个依赖项

    未能加载文件或程序集"xxx"或它的某一个依赖项.试图加载格式不正确的程序. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导 ...

  4. 未能加载文件或程序集“xxx”或它的某一个依赖项。试图加载格式不正确的程序。

    "未能加载文件或程序集"xxx"或它的某一个依赖项.试图加载格式不正确的程序."这个错误可能在IIS或VS中出现,一般是平台和dll版本不一致导致的. 一.VS ...

  5. 未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。(转)...

    未能加载文件或程序集"XXX"或它的某一个依赖项.试图加载格式不正确的程序. 作者: 字体:[增加 减小] 类型:转载 时间:2012-11-01 我要评论 如果你将应用程序生成x ...

  6. 【VS 2022】未能加载文件或程序集“sapnco”或它的某一个依赖项。试图加载格式不正确的程序。

    将开发工具 VS 2019 升级 到 VS 2022 之后,原来 的 MVC 3.0 项目启动的时候报错: 未能加载文件或程序集"sapnco"或它的某一个依赖项.试图加载格式不正 ...

  7. 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。未能加载文件或程序集“XXXXXX”或它的某一个依赖项。拒绝访问。

    前景:服务器在本地的VS编辑器运行起来正常,但是部署上就会报错. 我开发的这个项目,是因为后台要对客户端前台上传的Excel表进行操作,所以才会出现以下问题,在这之前, IIS服务器会要求把项目网站对 ...

  8. 未能加载文件或程序集“Pechkin”或它的某一个依赖项

    未能加载文件或程序集"Pechkin"或它的某一个依赖项 解决方案:在对应的应用程序池启用32位应用程序

  9. [Matlab]未能加载文件或程序集“xx”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。 Source: mscorlib HelpLink

    问题描述: 在MATLAB2009a里尝试调用某大神给出的c# dll,报错如下: >> NET.addAssembly(pfpath) ??? Message: 未能加载文件或程序集&q ...

最新文章

  1. 【Fibonacci-PEG,LDPC】基于Fibonacci-PEG算法的LDPC码校验矩阵的构造
  2. Spring boot配置类
  3. 笔记本暗屏维修多少钱_电视机维修|维修电视机多少钱?电视机黑屏
  4. js实现php中sleep()延时的功能
  5. Inline函数使用注意事项
  6. 刷新页面微信二维码图片随机换,点击按钮自动复制对应微信号
  7. 图文并茂: 二进制与十进制间的转换方法
  8. Disabling contextual LOB creation as createClob()
  9. iframe缓存无法清空_详解Http缓存机制
  10. 【sklearn第二十讲】聚类
  11. RESTClient 工具
  12. 面试 之 git工作流
  13. 老铁的IT之路,从迷茫“愤青”到团队项目经理,他是如何一步步走出来的?!
  14. win10 此电脑 网络位置 怎么删除
  15. 本篇文章带你秒懂——区块链到底是什么鬼?
  16. maya中英文对比_maya2017中英文对照表.doc
  17. 转座子可抑制mRNA翻译
  18. 三种存储类型:块存储、文件存储、对象存储
  19. mxnet load生成的json模型告警src/nnvm/legacy_json_util.cc:204: Warning: loading symbol saved by MXNet versio
  20. 在SQL中修改数据库名称

热门文章

  1. java rhino import_java调用javascript :js引擎rhino
  2. JVM怎么判断对象是否存活
  3. 009_IOC注解开发
  4. 003_隐藏和显示效果
  5. 软考之运筹学计算-车床问题
  6. Java设计模式(七):适配器设计模式
  7. tomcat war java_java – 启动Tomcat WAR
  8. mysql isolation level_MySQL数据库事务隔离级别(Transaction Isolation Level)
  9. html元素和属性,HTML常用元素和属性(一)
  10. python程序员年薪百万_想要成为年薪百万的Python程序员,这套面试题别错过