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文件,彻底解决了上面的问题。

     

  • 相关阅读:
    Codeforces 716C[数论][构造]
    HDU 5808[数位dp]
    Codeforces 611d [DP][字符串]
    Codeforces 404D [DP]
    HDU 5834 [树形dp]
    HDU 5521 [图论][最短路][建图灵感]
    矩阵
    kruskal 处理最短路 问题 A: 还是畅通工程
    Dijastra最短路 + 堆优化 模板
    CodeForces
  • 原文地址:https://www.cnblogs.com/huaguo/p/8202525.html
Copyright © 2011-2022 走看看