2

我目前正在使用 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 文档,但我找不到关于这个问题的任何信息。

4

1 回答 1

4

这是在 SO 上发布的类似问题。Jon 似乎回应了我所说的 - 你不能从上下文 (AppDomain) 中删除单个引用。

我在网上遇到了一个使用这段代码的代码段:

clr.ClearProfilerData() #unload the .dll file so the file lock is released

我假设你想卸载 DLL,因为你想重新编译它,但编译器抱怨一个进程仍在使用它?也许使用上面的方法会释放它?

编辑:作为后续行动,如果您想对其进行更多研究,请尝试这个想法。也就是说,在 C# 中创建一个 Python 实例,将其加载到自定义 AppDomain 中,并在完成后卸载自定义 AppDomain。:)

于 2013-12-05T16:18:07.140 回答