我正在使用Mono for Android开展项目。在阅读了与Xamarin的跨平台文档后。我将我的数据层放在一个单独的项目中,并将其移至我的Mono for Android项目,然后将这些文件链接到我的Mono Touch项目,有一天可能是Windows Phone 8项目。
当我移动代码时,由于System.Xml.Linq引用,我现在无法编译。该参考显示在Mono for Android项目中,但我无法使用它。我认为瞄准Froyo可能是问题所在,但将项目升级为姜饼或冰淇淋三明治并没有帮助。
有人知道我做错了什么吗?我是一名经验丰富的.NET开发人员,并且很清楚项目中的参考资料是如何工作的,但这个让我很难过。
原始代码正在开发的项目是针对Mono / .NET 4框架
答案 0 :(得分:2)
您对System.Xml.Linq的引用是指向.Net版本还是Mono版本? Mono的版本将具有版本2.0.5.0。
此外,是在Android类库/应用程序或常规.Net类库中引用System.Xml.Linq。如果它是.Net类库,我会尝试将您的Android应用程序中的库引用为编译(dll)引用,而不是项目引用。它不是一个完美的解决方案,但我发现当我需要引用我在多个解决方案中使用的库时,这是有效的。该引用通常可以正常工作,但如果Mono版本中不支持任何内容,则可能会导致问题。
假设您的代码在类库中,最好的办法是创建一个Mono特定版本的库项目。您可以导入和使用相同的类文件,但只需添加一些条件编译符号即可为Mono正确编译。如果您对此不熟悉,请查看Json.Net或ServiceStack如何管理多个平台的代码。