TypeLoadException with .NET 2.0 dll

I’m currently trying to get the ViconDataStreamSDK working with Unity. It’s a library for receiving a datastream from a Vicon motion-capture system. The SDK supplies a C++ and .NET version of the library (ViconDataStreamSDK_CPP.dll and ViconDataStreamSDK_DotNET.dll respectively).

I’m trying to build a Mono DLL for Unity that references the _DotNET.dll. Problem is that Unity spits out this error when I add my Mono DLL to my project: Internal compiler error. See the console log for more information. output was: - Pastebin.com

To provide a bit more context: according to the SDK manual, it requires that you redistribute both the _DotNET.dll and _CPP.dll with it (since the managed code in the .NET SDK assembly requires the unmanaged code in the C++ SDK). So along with my Mono DLL, I also put both the ViconDataStreamSDK_CPP.dll and ViconDataStreamSDK_DotNET.dll in the Assets/Plugins folder (additionally I tried adding them to Unity/Editor, Unity/MonoDevelop/bin, etc. but it didn’t seem to help).

To my knowledge, the error seems to indicate some sort of Mono incompatibility with the ViconDataStreamSDK_DotNET.dll. I’m just trying to figure out what. According to dotPeek, that DLL was build with .Net Framework v2.0. It references Microsoft.VisualC (8.0) and mscorlib (2.0). As for the rest, it’s mostly a .NET wrapper for the C++ library.

Is there anything I’m doing wrong, or is the _DotNET.dll just not compatible with Unity? If it’s the latter, it should be possible to build my own wrapper or native dll with just the C++ SDK?

Although an old question, the answer would still be relevant if there’s a solution. I have a similar issue with a CAN to USB device. The dll is written in .NET 2.0. When I try to reference any script that is using something 2.0-specific, it triggers the TypeLoadException.