如何删除应用于类属性的程序集? [复制]
Posted
技术标签:
【中文标题】如何删除应用于类属性的程序集? [复制]【英文标题】:How can I delete an assembly applied to the class property? [duplicate] 【发布时间】:2012-09-14 15:14:33 【问题描述】:我有一门课有public Assembly LoadedAssembly set; get;
var assemblyName = AssemblyName.GetAssemblyName(fullPathToDLLFile);
myClass.LoadedAssembly = Assembly.Load(assemblyName);
这门课我保留在Application.Current.Properties["MyClass"]
。
我尝试像 Application.Current.Properties["MyClass"] = null;
一样将其设为空,但它没有帮助。
我看到加载的程序集正常工作(它内部有一个计时器并且正在工作)。
如何清洁它?
(我不使用 AppDomain d = AppDomain.CreateDomain("NewDomain", null, domaininfo);
之类的东西来加载程序集。)
【问题讨论】:
【参考方案1】:您不能随意卸载程序集,而必须卸载加载程序集的 AppDomain(卸载 AppDomain 中的所有程序集)。如果您没有将其加载到单独的 AppDomain 中,那么唯一的方法就是关闭应用程序。
这个问题中有很多链接,详细说明了为什么不支持:How to unload an assembly from the primary AppDomain?
【讨论】:
【参考方案2】:您无法卸载程序集,但可以卸载将程序集加载到的 AppDomain。 见this解释。
【讨论】:
以上是关于如何删除应用于类属性的程序集? [复制]的主要内容,如果未能解决你的问题,请参考以下文章