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

     

  • 相关阅读:
    vue插件编写与开发
    http状态码解读
    JavaScript 在HTML中的加载顺序
    vue props的理解
    vue项目中使用scss
    [LeetCode] 57. 插入区间
    [LeetCode] 55. 跳跃游戏
    [LeetCode] 56. 合并区间
    [LeetCode] 54. 螺旋矩阵
    [LeetCode] 53. 最大子序和
  • 原文地址:https://www.cnblogs.com/huaguo/p/8202525.html
Copyright © 2011-2022 走看看