1

我有一堂课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);加载程序集的东西。)

4

2 回答 2

3

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

这个问题中有各种链接,详细说明了为什么不支持:如何从主 AppDomain 卸载程序集?

于 2012-09-14T15:38:45.757 回答
2

您无法卸载程序集,但可以卸载将程序集加载到的 AppDomain。请参阅说明。

于 2012-09-14T15:39:53.323 回答