添加对名称和命名空间中有点的 .net 程序集的引用
Adding reference to .net assembly which has dots in name and namespace
我正在尝试引用名称空间中有点的程序集。
sys.path.append(assemblyPath)
clr.FindAssembly(r"isc.Eng.Hov")
clr.AddReference(r"isc.Eng.Hov")
print 'isc.Eng.Hov' in clr.ListAssemblies(False)
from isc.Eng.Hov import *
解释器报错:
Traceback (most recent call last):
True
File "/mnt/86f8c6c8-9099-4f32-be68-486a12918546/GoogleDrive/__BACKLOG/RMK_API_LIB/rmkSuppliersDLLswrappers/scr/Hoval/__phex_hoval_dllwrapper.py", line 14, in <module>
from isc.Eng.Hov import *
ImportError: No module named isc.Eng.Hov
如何解决问题?
解决方案是使用 ILSPY 调查 DLL 并找到依赖项(递归地右键单击每个 DLL,然后单击添加依赖项)。然后我将所有依赖项复制到主 DLL 所在的同一文件夹中。在那之后,我 运行:
print [a for a in clr.ListAssemblies(False)
并获取实际涉及的依赖列表:
u'isc.Eng.Hov', u'Microsoft.VisualBasic', u'System.Windows.Forms', u'System.Drawing', u'Accessibility'
并将它们留在文件夹中。
这样做之后的部分代码:
sys.path.append(assemblyPath)
clr.AddReference("isc.Eng.Hov")
import isc.Eng.Hov as isk
from isk import *
开始工作。
谢谢大家,特别是@denfromufa 的帮助!
我正在尝试引用名称空间中有点的程序集。
sys.path.append(assemblyPath)
clr.FindAssembly(r"isc.Eng.Hov")
clr.AddReference(r"isc.Eng.Hov")
print 'isc.Eng.Hov' in clr.ListAssemblies(False)
from isc.Eng.Hov import *
解释器报错:
Traceback (most recent call last):
True
File "/mnt/86f8c6c8-9099-4f32-be68-486a12918546/GoogleDrive/__BACKLOG/RMK_API_LIB/rmkSuppliersDLLswrappers/scr/Hoval/__phex_hoval_dllwrapper.py", line 14, in <module>
from isc.Eng.Hov import *
ImportError: No module named isc.Eng.Hov
如何解决问题?
解决方案是使用 ILSPY 调查 DLL 并找到依赖项(递归地右键单击每个 DLL,然后单击添加依赖项)。然后我将所有依赖项复制到主 DLL 所在的同一文件夹中。在那之后,我 运行:
print [a for a in clr.ListAssemblies(False)
并获取实际涉及的依赖列表:
u'isc.Eng.Hov', u'Microsoft.VisualBasic', u'System.Windows.Forms', u'System.Drawing', u'Accessibility'
并将它们留在文件夹中。 这样做之后的部分代码:
sys.path.append(assemblyPath)
clr.AddReference("isc.Eng.Hov")
import isc.Eng.Hov as isk
from isk import *
开始工作。
谢谢大家,特别是@denfromufa 的帮助!