我正在开发一个使用 Mono for Android 的项目。在阅读了 Xamarin 的跨平台文档后。我将数据层放在一个单独的项目中,打算将其移动到我的 Mono for Android 项目,然后将这些文件链接到我的 Mono Touch 项目,有一天也许会链接到 Windows Phone 8 项目。
当我移动代码时,由于 System.Xml.Linq 引用,我现在无法编译。该参考显示在 Mono for Android 项目中,但我无法使用它。我认为瞄准 Froyo 可能是问题所在,但将项目升级到 Gingerbread 或 Ice Cream Sandwich 并没有帮助。
有人知道我做错了什么吗?我是一名经验丰富的 .NET 开发人员,并且非常了解引用在项目中的工作原理,但这个问题让我难住了。
原始代码正在处理的项目是针对 Mono/.NET 4 框架的
您对 System.Xml.Linq 的引用是指向 .Net 版本还是 Mono 版本? Mono 版本为 2.0.5.0。
另外,是对 Android 类库/应用程序或常规 .Net 类库中的 System.Xml.Linq 的引用。如果它是一个 .Net 类库,我会尝试在 Android 应用程序中将该库作为已编译 (dll) 引用而不是项目引用来引用。这不是一个完美的解决方案,但我发现当我需要引用在多个解决方案中使用的库时,这很有效。该参考通常可以正常工作,但如果 Mono 版本不支持任何内容,则可能会导致问题。
假设您的代码位于类库中,那么最好的选择可能是创建库项目的 Mono 特定版本。您可以导入并使用相同的类文件,但只需添加一些条件编译符号即可使其为 Mono 正确编译。如果您对此不熟悉,请看一下如何Json.Net https://json.codeplex.com/SourceControl/changeset/view/69709 or 服务栈 https://github.com/ServiceStack/ServiceStack/tree/master/src管理多个平台的代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)