如何删除应用于类属性的程序集? [复制]

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解释。

【讨论】:

以上是关于如何删除应用于类属性的程序集? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 ionic 2 应用程序中删除启动画面? [复制]

如何从 Flutter 应用程序中删除 firebase 用户? [复制]

手动删除引用nuget如何还原

如何删除/释放 .dll 程序集,由 Roslyn 发出

如何删除表格视图中的多行? [复制]

公司共享文件夹如何设置某个文件夹只读属性,不可更改复制删除等操作?