我正在尝试通过USB使用一个带有原生DLL的CAN设备,该DLL需要被.NET C#类包装(由供应商提供源代码),并包含在用户项目中。他们的示例应用程序针对.NET 2.0,而我的应用程序针对.NET 4.0。我能够在他们的示例应用程序中使用代码并成功进行调试,但是当我尝试调试我的应用程序时,就会出现BadImageFormatException错误:
System.TypeInitializationException: The type initializer for 'TotalPhase.KomodoApi' threw an exception. ---> System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
他们的代码和我的唯一区别似乎是,他们的代码是建立在.NET 2.0上的应用程序,而(目前)我的代码正在.NET 4.0中作为MSTest单元测试运行。两种解决方案都针对AnyCPU。我正在运行Windows 7 Ultimate 64位安装。即使从AnyCPU更改为x86也没有任何区别。如何使这个本地DLL在AnyCPU项目中加载?