一、原因

通常来说,类库作为应用程序的一部分,在程序运行之前就应该被引用到应用程序之中,并且其dll文件也应该与应用程序的.exe文件位于同一目录之下。当dll与.exe不在同一目录下时,就会引发“无法找到指定程序集”的错误。类库不像即插即用的插件,它是应用程序不可拆卸的一部分。

二、一般解决方案

在说完原因之后,其实解决方案也就已经出来了——将dll于.exe置于同一目录下即可。

当然,这只是最为简单的一种解决方法,而它所留下的后遗症也是显而易见的:如果你有多个不同的应用程序引用了同一个类库时,就将不得不在每一个应用复制一个dll,这实在是有些麻烦且不够优雅。这种方案又可以有几种实现方法。

方法1:在指定引用的属性中选择“复制到本地”一栏,并将其设置为true

方法2:在.exe目录下新建一个文件夹,并使其名称与类库名称一致,然后将类库置于此文件夹下

方法3:打开app.config文件,并添加以下代码:

    <runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"><probing privatePath="文件名"></probing></assemblyBinding></runtime>

只要将“文件名”替换为dll的目录即可,但需要注意的是,存储dll的文件必须置于与.exe同一目录下,否则这个方法无效

一般解决方案虽然解决了问题,但仍不够优美,下面我将介绍另一种方法。

三、对GAC的简单应用

GAC全称是Global Assembly Cache,作用是可以存放一些公共Assembly,也就是我们常说的公共类库。这样,很多程序就可以从GAC里面取得,而不需要再把所有要用到的dll都拷贝到应用程序的执行目录下面。

使用步骤:

(1)打开“开发人员命令提示符”

(2)创建密钥:

(3)使用密钥:

(4)重新编译后将程序集添加到缓存(这一步骤需要以管理员权限打开开发人员命令提示符):

(5)将目标添加目标引用并将“复制到本地”设置为false

以上就是解决方法

然后是将程序集移出缓存的方法:

关于错误“未能加载文件或程序集”的错误的若干处理办法——对GAC的简单应用相关推荐

  1. Power BI连接MySQL 提示错误......未能加载文件或程序集......或它的某一个依赖项

    Power BI连接MySQL数据库时报错: 提示错误未能加载文件或程序集"MySql.Data, Version=5.1.4.0, Culture=neutral,........&quo ...

  2. IIS 发布Web网站或接口,提示错误“未能加载文件或程序集“XXXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”

    IIS 发布Web网站或接口,提示错误"未能加载文件或程序集"XXXX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null ...

  3. 未能加载 mysql.data_连接MySQL 提示错误”未能加载文件或程序集“MySql.Data, Version=5.1.4.0, Culture=neutral,……..” | 学步园...

    CodeSmith4.1.3版本连接MySQL 提示错误"未能加载文件或程序集"MySql.Data, Version=5.1.4.0, Culture=neutral,..... ...

  4. TD_Mgd_3.03_9.dll错误未能加载文件或程序集“TD_Mgd_3.03_9

    TD_Mgd_3.03_9.dll错误:未能加载文件或程序集"TD_Mgd_3.03_9, Version=3.0.0.7684, Culture=neutral, 解决:vs中选择项目属性 ...

  5. 未能加载文件或程序集“System.Runtime.Serialization, Version=2.0.5.0, Culture=neutral,

    在用arcgis server for silverlight api 开发过程中,出现了这么个错误 "未能加载文件或程序集"System.Runtime.Serializatio ...

  6. 错误提示“未能加载文件或程序集“Microsoft.Office.Interop.Owc11”,

    .NET错误提示: 未能加载文件或程序集"Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicK ...

  7. 未能加载文件或程序集“Iesi.Collections”或它的某一个依赖项。参数错误。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))

    中文版:未能加载文件或程序集--或它的某一个依赖项.参数不正确. (异常来自 HRESULT:0x80070057 (E_INVALIDARG)) English:Could not load fil ...

  8. 错误:”未能加载文件或程序集“System.Web.Mvc, Version=2.0.0.0” 解决方法

    错误: 通过IIS发布网站,登录后弹出如下错误: Parser Error Message: 未能加载文件或程序集"System.Web.Mvc, Version=2.0.0.0, Cult ...

  9. 未能加载文件或程序集“Antlr3.Runtime”或它的某一个依赖项。参数错误。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))解决方法。...

    前一天晚上VS卡死,强制关闭后就没理他,然后晚上回去又经历了一次过热断电关机和一次蓝屏,当然我也不知道这些和他有没有关联,第二天早上打开程序出现了:"未能加载文件或程序集"Antl ...

  10. 常见错误:未能加载文件或程序集

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

最新文章

  1. Synergy软件的基本配置/使用(详细教程)
  2. 深入分析 Linux 内核链表--转
  3. linux KVM win虚拟机磁盘扩容(qcow2)
  4. 不能修改“System Roots”钥匙串
  5. 创建一个自己的GitHub,创建自己的开源项目
  6. 数据库MySQL/mariadb知识点——日志记录(2)二进制日志
  7. 【python】正则表达式匹配多个模式
  8. 最新8篇ICML2020投稿论文:自监督学习、联邦学习、图学习、数据隐私、语言模型、终身学习...
  9. django默认缓存是多大_半个月搞定Django绝不是空话
  10. https端口号_Wireshark使用以及https
  11. 生成器模式及C++代码实现
  12. Python-Curses模块
  13. Web Polygraph (WebAxe-4) 测试反向代理缓存服务器
  14. 为什么中介哄抢租赁房源,你应该知道的真相?
  15. PLINK-GWAS学习6------数据质控之杂合率质控
  16. C - Serval and Parenthesis Sequence
  17. 一篇文章读懂支付宝9.0改版背后的产品逻辑和战略布局
  18. 【音视频流媒体】WebRTC 直播超详细介绍
  19. springCloud-day04
  20. “时间都到哪里去了?”

热门文章

  1. 【Linux云计算架构:第二阶段-Linux必会的20多种服务】第22章——-源码编译安装LAMP
  2. 函数的基本概念以及函数封装
  3. 谷歌浏览器任何页面都打不开连设置也不能打开
  4. Cesium 显示三维地球和地图的开源js库
  5. 小呆学数据分析——用duplicated/drop_duplicates方法进行重复项处理
  6. 今日恐慌与贪婪指数为21 恐慌程度有所缓解
  7. css的盒子模型与定位机制解读随记
  8. JAVA藏宝阁游戏交易系统计算机毕业设计Mybatis+系统+数据库+调试部署
  9. strongswan与sangfor的ikev2配置
  10. 折半查找平均长度公式推导