嵌入IronPython - 无法添加对System的引用

时间:2009-09-08 15:32:52

标签: .net ironpython

我在我的C#应用​​程序中嵌入了IronPython。 出于某种原因,我在加载程序集时遇到问题。具体来说,我想要System.dll,这样我就可以访问像DateTime这样的.NET类。

如果我尝试这一行:

_runtime.LoadAssembly(_runtime.Host.PlatformAdaptationLayer.LoadAssembly("System"));

我明白了:

could not load file or assembly 'System'

如果我明确键入C:/WINDOWS/Microsoft.NET /.../ System.dll的路径,我得到:

The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)

然后我尝试在Python脚本中使用clr进行导入:

import clr
clr.AddReference('System')
from System import DateTime

现在我明白了:

Cannot import name DateTime

我哪里错了?为什么DateTime不在System中,为什么LoadAssembly找不到System.dll?我是否需要明确为IronPython设置一些搜索路径?是否找到了无效的“系统”?

当我在IronPython解释器中测试时,这一切都正常。

1 个答案:

答案 0 :(得分:4)

我使用engine.Runtime.LoadAssembly(typeof(string).Assembly);来加载系统程序集;我相信这也是IronPython控制台的功能。

P.S。不要忘记source to IronPython is available;对于像这样的东西来说,这是一个金矿。