如何在IronPython中卸载.NET程序集引用

6 投票
1 回答
1737 浏览
提问于 2025-04-15 14:00

在用类似下面的方式加载一个程序集之后:

import clr
clr.AddRferenceToFileAndPath(r'C:\foo.dll')

我该如何再次卸载这个程序集呢?

为什么有人会想要这么做呢?因为我正在重新编译 foo.dll,想要重新加载它,但编译器却不高兴,因为 IronPython 已经在使用 foo.dll 了。

1 个回答

6

.NET本身不支持单独卸载一个程序集。相反,你需要卸载整个AppDomain。我不太清楚IronPython是如何处理AppDomain的,但这就是.NET的常规做法。(把程序集加载到一个新的AppDomain中,使用它,然后丢弃这个AppDomain,再创建一个新的AppDomain来加载文件的新版本等等。)

撰写回答