试图卸载非托管和托管的第三方dll

时间:2011-02-21 15:28:15

标签: c# visual-studio-2010 dispose

请告诉我,让车库收集器卸载非托管/托管第三方dll的最佳方法是什么。

2 个答案:

答案 0 :(得分:2)

无法在.NET中卸载托管程序集。唯一的选择是卸载整个AppDomain。另见:

答案 1 :(得分:0)

托管代码加载到Windows进程中的“默认应用程序域”,在进程终止之前永远不会卸载。

CLR无法卸载单个程序集;但是可以卸载单个AppDomain。

调用AddRef& ICLRRuntimeHost上的发布方法没有任何影响。 [CLR就像COM服务器]

检查MSDN链接为什么没有Assembly.Unload方法? http://blogs.msdn.com/b/jasonz/archive/2004/05/31/145105.aspx

要释放非托管资源,请使用IDisposable Interface。

关于垃圾收集的MSDN上的一篇很好的文章 http://blogs.msdn.com/b/scottholden/archive/2004/12/28/339733.aspx