电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

Dotnet实现动态加载和卸载dll


发布日期:2024/3/28
 

案例在Dotnet中使用反射动态加载dll却发现没有提供unload()方法?

思路

创建appdomain在其上加载dll然后对可以appdomainunload(secmon)从而间接unload已加载的dll

google下可以找到很多代码 但我发现在windows form 上可以很轻易的完成的功能但到aspnet中就老是报错

错误信息~ \Microsoft Visual Studio \Common\IDE\这个目录没有要卸载的dll问题它为什么要跑到这个目录去找而不去我给它指定的目录找呢?我使用

AppDomainSetup setup = new AppDomainSetup();

setupApplicationName = check;

setupApplicationBase = path; //设置程序集加载的目录

为什么会这样我也一直没弄懂?

思路

使用fileinfo 得到该dll 的二进制代码由于没加载该dll所以没不会出现无法unload的情况

byte[] assemblyInfo = FileReadAllBytes(dllpath);

Assembly asm = AssemblyLoad(assemblyInfo);

object obj = asmCreateInstance(namespaceclassName true);

有更多的方法欢迎指点!

上一篇:不同映射模式下的直线输出的效果问题[2]

下一篇:Dotnet动态加载和卸载dll