【发布时间】:2013-05-06 22:05:59
【问题描述】:
在高层次上,我的问题是:
Linux 平台上 Mono 支持的所有内容都被 Android 平台上的 Android.Xamarin 支持吗?
更多信息:我正在研究将针对 .NET v3.5 框架的复杂 C# 应用程序移植到 Android 平板电脑上的可能性,并想确认我对 Mono 支持的内容与安卓设备。
Mono 的Compatibility list 很好地解释了 Mono 架构支持哪些功能。正如他们明确指出的那样,单声道支持:
.NET 4.0 中的所有内容,除了 WPF、WWF 和有限的 WCF。
但是,了解 Xamarin for Android 支持的内容并不容易。我找到了这个topic on Assemblies,其中包含对 System.dll 下支持的命名空间的描述
Silverlight,以及来自以下命名空间的类型:[更多列出]...
silverlight reference 提到 System.Windows.Threading 在 silverlight 下,但如果我只是创建一个新项目,这似乎没有意义。
这是一个示例:如果我打开一个新的单声道项目并尝试访问 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 类库项目
【问题讨论】:
-
要查看支持与否,您只需检查androidapi.xamarin.com
标签: mono xamarin.android xamarin