[mono-android] .net versions: why different?

Jonathan Pryor jonp at xamarin.com
Tue Feb 28 16:54:23 UTC 2012


On Feb 28, 2012, at 2:41 AM, James Briant wrote:
> MT is 4.0. MfA is 3.5.

I don't understand what you mean here. The Base Class Library (BCL) that MonoTouch and Mono for Android provide are a superset of Silverlight (2.0? 3.0? not entirely sure anymore), and use assembly version 2.0.5.0. There are large inclusions of 4.0 types and methods, e.g. mscorlib.dll contains System.Func for up to 8 parameters, as .NET 4.0 does, and Mono for Android's mscorlib.dll provides covariant Func and Action types, though IEnumerable<T> is not yet covariant.

Apparently what you're referring to is a lacking Type.operator==(). I'm not sure what's going on here; my MonoTouch 5.2.5 mscorlib.dll doesn't have a Type.operator== method (at least not that I see in monodis), nor does Mono for Android's mscorlib.dll. Very odd...or are you trying to use a WP7 assembly with MT/MfA?

> You'd think it doesn't make much of a difference but if my libs are 3.5 NUnit wont run them from a network location.

It is possible to do so, you just need to mark your network location as a permitted location. Unfortunately it's been years since I last did this, so I forget the details, but it is possible.

> Meanwhile, WP7 is Silverlight 4.0.

...except when it isn't, e.g. lacking System.Reflection.Emit (in SL4, not in WP7).

> So that totally screws my plan of having shared code.

I still don't follow. There is still _tons_ of types and methods that are shared between MT, MfA, WP7, SL4, desktop .NET. Collections, LINQ, XLinq.

I/O is more problematic (iirc WP7/SL4 have removed the synchronous APIs, while MT/MfA continue to provide them), but MT/MfA should still be a superset here: target WP7 and the source should mostly work as-is on MT/MfA.

Unfortunately Windows 8/Metro is throwing a bit of a wrench here, something that we're still investigating...

> I have a simple request: make MT and MfA able to reference (and use) WP7 targeted libraries in Visual Studio.

I don't foresee this happening. However, we are looking into the next best thing: Portable Library Project v2.0 assembly support, as is used with Metro. There should be sanity here eventually, but I don't know what the timeframe is.

 - Jon



More information about the Monodroid mailing list