【问题标题】: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); 之类的东西来加载程序集。)

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    您不能随意卸载程序集,而必须卸载加载程序集的 AppDomain(卸载 AppDomain 中的所有程序集)。如果您没有将其加载到单独的 AppDomain 中,那么唯一的方法就是关闭应用程序。

    这个问题中有很多链接,详细说明了为什么不支持:How to unload an assembly from the primary AppDomain?

    【讨论】:

      【解决方案2】:

      您无法卸载程序集,但可以卸载将程序集加载到的 AppDomain。 见this解释。

      【讨论】:

        猜你喜欢
        • 2017-05-18
        • 1970-01-01
        • 2016-06-10
        • 2019-11-29
        • 1970-01-01
        • 2011-06-02
        • 1970-01-01
        • 1970-01-01
        • 2013-08-02
        相关资源
        最近更新 更多