3

我正在开发一个使用 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 框架

4

1 回答 1

2

您对 System.Xml.Linq 的引用是指向 .Net 版本还是 Mono 版本?Mono 的版本为 2.0.5.0。

Mono System.Xml.Linq 参考

此外,是在 Android 类库/应用程序或常规 .Net 类库中对 System.Xml.Linq 的引用。如果它是一个 .Net 类库,我会尝试将您的 Android 应用程序中的库作为已编译(dll)引用而不是项目引用来引用。这不是一个完美的解决方案,但我发现当我需要引用跨多个解决方案使用的库时,这很有效。该参考通常可以正常工作,但如果 Mono 版本不支持任何内容,则可能会导致问题。

假设您的代码在类库中,最好的选择可能是创建库项目的 Mono 特定版本。您可以导入和使用相同的类文件,但只需添加一些条件编译符号即可使其为 Mono 正确编译。如果您对此不熟悉,请查看Json.NetServiceStack如何管理多个平台的代码。

于 2012-12-18T01:37:41.227 回答