zoukankan      html  css  js  c++  java
  • Assembly.LoadFile和Assembly.LoadFrom区别

    做一个热插拔项目时候用Assembly.LoadFile导致了dll(依赖的dll也通过Assembly.LoadFile),使用时候会报错,提示:

    未能加载文件或程序集“PageAdmin.WeiXin.BLL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。

    网上解决方法是注册一个AssemblyResolve事件

            AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
    Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { AssemblyName assemblyName = new AssemblyName(args.Name); return Assembly.LoadFrom("/App_Data/Plugins/" + assemblyName.Name + ".dll"); }

     AssemblyResolve作用是加载的dll如果报错或需要依赖其他dll没有找到,就会触发这个事件,实际测试发现这个事件有坑,会导致死循环(具体原因不详)

    最后改为Assembly.LoadFrom()来解决,LoadFrom导入dll同时会导入同目录下的依赖dll文件,彻底解决了上面的问题。

     

  • 相关阅读:
    集合选数
    二分答案入门乱讲
    浅谈搜索剪枝
    数位DP
    RMQ问题与ST算法
    计数排序与基数排序
    主席树/函数式线段树/可持久化线段树
    树链剖分
    LCA问题
    树的直径、树的重心与树的点分治
  • 原文地址:https://www.cnblogs.com/huaguo/p/8202525.html
Copyright © 2011-2022 走看看