如何在 IronPython 中卸载 .NET 程序集引用
加载对程序集的引用后,例如:
import clr
clr.AddRferenceToFileAndPath(r'C:\foo.dll')
如何再次卸载程序集?
为什么有人想要这样做?因为我正在重新编译 foo.dll 并想要重新加载它,但编译器让我大惊小怪,因为 IronPython 已经准备好访问 foo.dll 了。
After loading a reference to an assembly with something like:
import clr
clr.AddRferenceToFileAndPath(r'C:\foo.dll')
How can I unload the assembly again?
Why would anyone ever want to do this? Because I'm recompiling foo.dll
and want to reload it, but the compiler is giving me a fuss, since IronPython is allready accessing foo.dll
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
.NET 本身不支持仅卸载单个程序集。相反,您需要卸载整个
AppDomain
。我不知道 IronPython 是如何与 AppDomain 一起工作的,但这是正常的 .NET 处理方式。 (将程序集加载到新的AppDomain
中,使用它,丢弃AppDomain
,使用新版本的文件创建一个新的AppDomain
等。 ).NET itself doesn't support unloading just a single assembly. Instead, you need to unload a whole
AppDomain
. I don't know exactly how IronPython works withAppDomain
s, but that's the normal .NET way of doing things. (Load the assembly into a newAppDomain
, use it, discard theAppDomain
, create a newAppDomain
with the new version of the file etc.)