热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[求助]Assembly.LoadFrom()加载程序集不释放急!!

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 个解决方案

#1


有没有人 都回家吃饭了么?

#2


大神 大神 你在哪

#3


么情况?base.dll依赖项,base自己会去调用,你不用加载ref.dll和b.dll
除非你现在也要用ref.dll和b.dll才要加载他们。

不明白你说的释放是啥意思,你要用到的对象,及时Close(需要的话),和及时Dispose

#4


你了解 Assembly.Load 吗?
http://www.cnblogs.com/danielWise/archive/2011/09/07/2170042.html

#5


你的需求在同一个appdomain中是无法实现的,你只能卸载整个appdomain

#6


引用 3 楼 gxingmin 的回复:
么情况?base.dll依赖项,base自己会去调用,你不用加载ref.dll和b.dll
除非你现在也要用ref.dll和b.dll才要加载他们。

不明白你说的释放是啥意思,你要用到的对象,及时Close(需要的话),和及时Dispose
是这样的byte[] buffer = System.IO.File.ReadAllBytes(yourFullfileNamePath);
Assembly assembly = Assembly.Load(buffer);
这样写的话yourFullfileNamePath下的DLL是被加载了,对应的程序集也没有被锁住,但是其调用的DLL没有被加载啊 这个如何破  你说的dispose我试过  好像只能释放当前使用的所有资源 能释放我要指定的资源么?

#7


Assembly只能加载,不能释放。
只有AppDomain可以加载释放。

#8


我贴一段代码吧

 Assembly quote = Assembly.LoadFrom(Path.Combine(OpConfig.ConstDic[ConfigPathType.OutDll], lstWaitCompile.Items[i].ToString() + ".dll"));

这个加载指定的DLL以后 然后我要删除它所在的目录删除不了  说这个DLL被占用 
Directory.Delete(OpConfig.ConstDic[ConfigPathType.OutDll], true);

#9


引用 7 楼 wddw1986 的回复:
Assembly只能加载,不能释放。
只有AppDomain可以加载释放。
这个我知道

#10


没有办法释放。

只能加载到单独的appdomain中,然后不用的话,释放appdomain.

#11


引用 10 楼 findcaiyzh 的回复:
没有办法释放。

只能加载到单独的appdomain中,然后不用的话,释放appdomain.


这个如何加载 请大神明示   还有就是加载到appdomain中的时候  对应的程序集的 引用的程序集会自动加载么

#12



AppDomain dom = AppDomain.CreateDomain("some");     
AssemblyName assemblyName = new AssemblyName();
assemblyName.CodeBase = pathToAssembly;
Assembly assembly = dom.Load(assemblyName);
Type [] types = assembly.GetTypes();
AppDomain.Unload(dom);


代码来自:
http://stackoverflow.com/questions/6258160/unloading-the-assembly-loaded-with-assembly-loadfrom

#13


引用 12 楼 findcaiyzh 的回复:
C# code?123456AppDomain dom = AppDomain.CreateDomain("some");     AssemblyName assemblyName = new AssemblyName();assemblyName.CodeBase = pathToAssembly;Assembly assembly = dom.Load(assemb……

但是他还是报错啊


Could not load file or assembly 'F_ANALYSIS_BETA2, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

#14


这个是什么意思啊

#15


AppDomain dom = AppDomain.CreateDomain("some");
                        AssemblyName assemblyName = new AssemblyName();
                        assemblyName.CodeBase = Path.Combine(OpConfig.ConstDic[ConfigPathType.OutDll], lstWaitCompile.Items[i].ToString() + ".dll");
                        Assembly quote = dom.Load(assemblyName);

推荐阅读
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
author-avatar
happy农村人9_624
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有