- Home /
Mono and missing types using external library
Hi,
we're trying to make use of EmguCV, which is a pure .Net library that interfaces to the native library OpenCV. We're using Unity 3.0 beta 4 for the modern Mono version.
However, when trying to create cameras for capture, we run into some missing type problems:
Unhandled Exception: System.TypeLoadException: Could not load type
'System.ServiceModel.ServiceBehaviorAttribute' from assembly 'Emgu.CV'.
So I locate this type in the Mono System.ServiceModel.dll, and paste the dll into our plugins directory. Then I get this:
Unhandled Exception: System.MissingMethodException: Method not found:
'System.Security.SecurityCriticalAttribute..ctor'.
And I find this type inside mscorlib.dll, which is also in Mono. I paste this library into the Plugins directory aswell. This causes the Unity compiler to hang for a LOOOONG time, and in the end it doesn't seem to find the type anyway - still the same error message.
Any pointers and tips on how to make this work? Is it at all possible? Any idea why SecurityCriticalAttribute is missing from Unity's Mono version?
Is there a better way to resolve these issues than just pasting various DLLs into your Plugins dir to see if it works?
Will you be publishing your code (open source licence) or did you go with the commercial license?
Answer by Magnus Wolffelt · Jul 28, 2010 at 05:35 PM
First of all, kudos to Jens for solving this!
The problem lies in API compatibility in Player settings in the editor. It was set to .NET 2.0 reduced, instead of just .NET 2.0.
So, if you have big/complex .NET libraries that cause problems, check API compatibility settings.
Happy coding!
isn't Emgu CV only for .NET 3.5+? how did you get this to work with Unity?
Answer by goorioles747 · Nov 01, 2011 at 07:23 AM
Sorry to bump an old thread, but I am getting the first problem you had. When I try to make a Capture object in MonoDevelop, it gives me
Unhandled Exception: System.TypeLoadException: Could not load type
'System.ServiceModel.ServiceBehaviorAttribute' from assembly 'Emgu.CV'.
I have trued putting emgu.cv.dll, emgu.cv.ui.dll, and emgu.util in the assets/plugins folder and added them as a reference to the monodevleop project.
Ins$$anonymous$$d of bumping an old question, why don't you make a new one, and delete this?
Because $$anonymous$$agnus Wolffelt had the same exact problem as me, and solved it...
Your answer
Follow this Question
Related Questions
Plugins on OSX (OpenCV and EmguCV) 2 Answers
How to make Unity find .dylib files? 5 Answers
opencv split method crashed in unity ,OpenCV split (frame,vector) method crashed in Unity 0 Answers
How to link to scripts in the Package Manager when building a dll. 0 Answers
Unity XR plugin manager Tries to load oculus dll on windows even if its disabled. 0 Answers