- Notifications
You must be signed in to change notification settings - Fork749
Description
Environment
- Pythonnet version: 2.3.0
- Python version: 3.5 (both installed using Anaconda) 64-bit
- Operating System: Windows 7 64-bit
Details
I am trying to load a .NET assembly DLL using pythonnet. This has worked fine for other DLLs (.NET 4) but for one in particular I am having issues. This is an assembly provided by the Sapera SDK made by DALSA. I don't know what .NET version this was made using, presumably 4 but I don't know how to check. The docs for it say NET 3.5+ required.
Using the VS dependency checker I have determined that all the required DLLs are on the path (although I had to move MSVCR80.dll and MSVCP80.dll into System32 from an odd location). DependencyWalker shows a couple more that may be missing and suggests that the DLL is 64-bit.
The dependencies that I get from VS are:
corapi.dll, WINMM.dll, KERNEL32.dll, USER32.dll, GDI32.dll, MSVCR80.dll, MSVCP80.dll, msvcm80.dll, mscoree.dll
The following code produces a Traceback:
import clrimport sysassemblydir = "C:/Program Files/Teledyne DALSA/Sapera/Components/NET/Bin"assemblyname = "DALSA.SaperaLT.SapClassBasic"sys.path.insert(0, "C:/Windows/System32")sys.path.insert(0, assemblydir)clr.AddReference(assemblyname)
Traceback (most recent call last): File "netdlltest.py", line 9, in <module> clr.AddReference(assemblyname)System.IO.FileNotFoundException: Unable to find assembly 'DALSA.SaperaLT.SapClassBasic'. at Python.Runtime.CLRModule.AddReference(String name)
Is there something I am overlooking? I imagine it can actually find it but is failing to load it for some reason. Thanks for any help you can provide.