Xamarin的Android for Mono是否支持与Mono相同的.NET库?

问题描述:

在很高的层面上,我的问题是:Xamarin的Android for Mono是否支持与Mono相同的.NET库?

Mono是否支持Android平台上Android.Xamarin支持的Linux平台上的所有功能?

更多信息:我正在研究将一个复杂的C#应用​​程序移植到Android平板电脑上的可能性,并且希望确认我对Mono支持的内容和支持的内容的理解在Android设备上。

Mono的Compatibility list在解释Mono架构中支持哪些功能方面做得相当不错。正如他们清楚说明的那样,单声道支持:

.NET 4.0中除WPF,WWF和有限WCF之外的所有内容。

但是,理解Xamarin for Android所支持的内容并不容易。我发现这个topic on Assemblies,其包括System.dll中

下支持

的Silverlight的命名空间的说明,加上类型的数据从以下命名空间:[更多的上市] ...

silverlight reference提到系统.Windows.Threading是在silverlight下,但如果我只是创建一个新项目,这似乎没有意义。

下面是一个例子:如果我打开一个新的mono项目并尝试访问System.Windows.Threading,除非包含对WindowsBase.dll的引用,否则我无法访问它。此外,我可以只有成功地从一个“Android类库”项目中引用WindowsBase.dll - 如果我尝试创建一个“Android应用程序”项目并尝试引用WindowsBase.dll我收到一个神秘的编译错误,粘贴在下面。

Error 2 Exception while loading assemblies: System.IO.FileNotFoundException: Could not load assembly 'WindowsBase, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. Perhaps it doesn't exist in the Mono for Android profile? 
File name: 'WindowsBase.dll' 
    at Xamarin.Android.Tuner.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters) 
    at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(List`1 assemblies, AssemblyDefinition assembly) 
    at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(List`1 assemblies, AssemblyDefinition assembly) 
    at Xamarin.Android.Tasks.ResolveAssemblies.Execute() C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets 720 2 AndoidCtmConnectionTester 

所以我的跟进问题是:为什么从Android应用程序项目引用一个DLL时,我会得到一个编译错误,而不是一个Android类库项目

+1

要查看是否支持,您可以简单地检查http://androidapi.xamarin.com/ – 2013-05-07 02:29:39

System.Windows.Threading程序被认为是WPF的一部分,所以无意让它在Xamarin.Android中工作。

如果你想组装直接引用.NET,Xamarin.Android可以加载只有几个简单的.NET程序集(以及警告:“引用的项目针对的是不同的框架家族(.NETFramework)”)

WindowsBase.dll封装了一些win32原生方法也很有可能,所以无法在Android环境下运行它。

所以坏消息是你需要将你的代码移植到System.Threading类。

+0

感谢您的信息米哈尔。在未来,我希望Xamarin在编译Android类库时添加编译时检查,以便在编译库本身时运行编译错误,而不是在Android应用程序中包含之前编译的类库时 – CrimsonX 2013-05-10 18:03:12