请告诉我,让车库收集器卸载非托管/托管第三方dll的最佳方法是什么。
答案 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