我目前正在使用Python for .NET从C#DLL调用方法。这是我的代码:
# Common Language Runtime
import clr
# Import DLL
clr.AddReference("MyDLL")
# Import class
from MyNamespace import MyClass
# Instantiation
my_instance = MyClass()
# Call methods
my_instance.myMethod()
现在,我想在完成我的实例后卸载并删除DLL引用,这样我就可以做任何与DLL文件有关的事情(比如重新生成它)。我已经阅读了Python for .NET文档,但我找不到任何关于这个问题的内容。
答案 0 :(得分:4)
这是在SO上发布的similar question。 Jon似乎回应了我所说的内容 - 你无法从上下文中删除单个引用(AppDomain)。
我遇到了一个使用这段代码的在线代码段:
clr.ClearProfilerData() #unload the .dll file so the file lock is released
我假设您要卸载DLL,因为您想重新编译它,但编译器抱怨进程仍在使用它?也许使用上面的方法会释放它吗?
编辑:作为后续行动,如果您想更多地研究它,请尝试this想法。也就是说,在C#中创建Python实例,将其加载到自定义AppDomain中,并在完成后卸载自定义AppDomain。 :)