【发布时间】:2018-08-26 22:52:10
【问题描述】:
我工作的公司正在切换到 Pandas,并希望在 IronPython 中重建旧的 C# 应用程序。我正在尝试将我在 C# 中构建的 AutoCAD 自动化转换为 IronPython,但出现错误。我正在尝试使用 clr 从 AutoCAD 的 API 库中加载 dll。
参考代码:
import clr
path = "C:\\Program Files\\Autodesk\\Autodesk AutoCAD Civil 3D 2014\\"
clr.AddReferenceToFileAndPath(path + "AcCoreMgd.dll")
clr.AddReferenceToFileAndPath(path + "AcDbMgd.dll")
clr.AddReferenceToFileAndPath(path + "AcMgd.dll")
clr.AddReferenceToFileAndPath(path + "AcMgdInternal.dll")
错误:
系统错误:无法加载文件或程序集“accoremgd,版本=19.1.0.0,文化=中性,PublicKeyToken=null”。该程序集是为不同的处理器编译的。
我有点困惑,因为我在 Visual Studio 中构建了自动化,是在我目前用来将其转换为 IronPython 的同一台机器上。
【问题讨论】:
-
会不会存在 x86 与 x64 的问题?这些托管 DLL 是为 AnyCPU 还是特定目标编译的?您的 IronPython 是在 x86 还是 x64 上运行?
-
我正在使用 x64 Eclipse 运行 x64 IronPython 并尝试插入 x64 AutoCAD dll
-
我也刚刚尝试在 x64 Visual Studio(构建 C# 应用程序的同一程序)中重建并运行它,但我仍然遇到相同的错误
-
forums.autodesk.com/t5/NET/… 似乎暗示这些 DLL 可能只能在 autocad 中托管,而您的 Ironpython 项目可能不是这种情况?
-
@SimonOpelt 是的,我做了更多阅读,发现 dll 使用了 IronPython 无法处理的许多自定义功能。所以我决定构建一个 python 包装器 Pandas 可以与之通信,但让 C# 应用程序来完成实际工作。非常感谢您的帮助!
标签: c# ironpython autocad