如何在IronPython中卸载.NET程序集引用
在用类似下面的方式加载一个程序集之后:
import clr
clr.AddRferenceToFileAndPath(r'C:\foo.dll')
我该如何再次卸载这个程序集呢?
为什么有人会想要这么做呢?因为我正在重新编译 foo.dll
,想要重新加载它,但编译器却不高兴,因为 IronPython 已经在使用 foo.dll
了。
1 个回答
6
.NET本身不支持单独卸载一个程序集。相反,你需要卸载整个AppDomain
。我不太清楚IronPython是如何处理AppDomain
的,但这就是.NET的常规做法。(把程序集加载到一个新的AppDomain
中,使用它,然后丢弃这个AppDomain
,再创建一个新的AppDomain
来加载文件的新版本等等。)