我在我的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解释器中测试时,这一切都正常。
答案 0 :(得分:4)
我使用engine.Runtime.LoadAssembly(typeof(string).Assembly);
来加载系统程序集;我相信这也是IronPython控制台的功能。
P.S。不要忘记source to IronPython is available;对于像这样的东西来说,这是一个金矿。