【问题标题】:clr.AddReferenceToFile() fails in IronPython 2.7clr.AddReferenceToFile() 在 IronPython 2.7 中失败
【发布时间】:2023-03-15 20:49:01
【问题描述】:

有人可以解释为什么这个代码:

import sys
sys.path.append("C:\\WINDOWS\\system32")

import clr
clr.AddReferenceToFile("wiimotelib.dll")

在 IronPython 2.6 中运行良好,但在 IronPython 2.7 alpha 1 中失败并出现 IOException,并且消息:

Could not add reference to assembly wiimotelib.dll

这是 2.7 中的新行为,还是 alpha 版本的错误?

【问题讨论】:

    标签: python ironpython


    【解决方案1】:

    这可能是 .NET 2 与 .NET 4 的问题吗? IronPython 2.7A1 仅是 .NET 4.0。 2.6 有 .NET 2 和 .NET 4 版本。如果程序集是 .NET 2 程序集,它可能不会加载到 .NET 4 CLR。​​

    【讨论】:

    • DLL 已经有一年多的历史了,所以它不会是 .NET 4。我想我必须希望有一天会有更新的版本出现。
    【解决方案2】:

    您必须重新编译 WiimoteLib 程序集。我有同样的问题。重新编译后就没有了。

    【讨论】:

      【解决方案3】:

      我认为 IronPython 2.7 中删除了对“DLL”扩展的需求:

      你可以试试:clr.AddReferenceToFile("wiimotelib");

      为我工作。

      【讨论】: