The requested feature is not implemented

My team is currently developing across multiple development platforms. We are using some of our own assemblies with Unity, but our current version of the assembly references System.Web and System.Web.Services, which appear to be missing in the Mono Compatibility page.

The strange behavior comes from running on the Mac vs Windows. On the Mac and iPad, everything runs fine and everything compiles inside MonoDevelop without any problems. When I bring the project over to the PC, Unity won’t load the .dll. It complains about some missing references (in an obscure way).

If I copy those referenced assemblies into the asset folder (System.Web, System.Web.Services) from the .NET 2.0 folder on Windows, those errors go away and Unity can play the scene. MonoDevelop, on the other hand, will not compile with those libraries in there and anytime I make a call into our custom .dll, I get a message saying:

Exception Caught: The requested feature is not implemented.

Now I understand this error is thrown because this subset of functionality is not available in older versions of Mono, but that doesn’t explain why the Mac version works just fine, even without additional assemblies and without errors of any kind. I would assume that the mobile version of Mono would have even less functionality, but again, the iPad can make all of the calls just fine.

I seemed to have answered my own question after a couple hours of extended looking around.

You must first install a new version of Mono onto your machine (latest is fine, but you might want to grab an older version for Unity compatibility reasons, like 2.6.7)

I discovered that the default is set to Microsoft .NET for the runtime, and for whatever reason, it was causing the load failures. I switched the default to the Mono runtime and everything seems to be grooving now.

Under Tools -> Preferences, you will find the option for switching the runtime. Here's a quick image of what you are looking at/for:

alt text