作者:happy农村人9_624 | 来源:互联网 | 2023-06-07 10:34
Assembly.LoadFrom()不释放Assembly.LoadFrom()加载程序集不释放一直被占用用AppDomain来加载释放无法实现我要的效果目前有bas
Assembly.LoadFrom()
不释放
Assembly.LoadFrom()加载程序集不释放 一直被占用
用AppDomain来加载释放无法实现我要的效果
目前有base.dll, 引用ref.dll和b.dll
我要的效果是加载的base.dll能同时把它所依赖的DLL都加载上去,也就是能同时获得ref.dll和b.dll的信息。
完了能够释放这个程序集,使其不被占用!
有没有大神 求援助!!
15 个解决方案
么情况?base.dll依赖项,base自己会去调用,你不用加载ref.dll和b.dll
除非你现在也要用ref.dll和b.dll才要加载他们。
不明白你说的释放是啥意思,你要用到的对象,及时Close(需要的话),和及时Dispose
你了解 Assembly.Load 吗?
http://www.cnblogs.com/danielWise/archive/2011/09/07/2170042.html
你的需求在同一个appdomain中是无法实现的,你只能卸载整个appdomain
Assembly只能加载,不能释放。
只有AppDomain可以加载释放。
我贴一段代码吧
Assembly quote = Assembly.LoadFrom(Path.Combine(OpConfig.ConstDic[ConfigPathType.OutDll], lstWaitCompile.Items[i].ToString() + ".dll"));
这个加载指定的DLL以后 然后我要删除它所在的目录删除不了 说这个DLL被占用
Directory.Delete(OpConfig.ConstDic[ConfigPathType.OutDll], true);
没有办法释放。
只能加载到单独的appdomain中,然后不用的话,释放appdomain.