3

我最近从 Xamarin获得了Mono Android的学生许可证。

在做了一个简单的项目之后,我决定开始在我的 Android 应用程序(单项目)上使用一些我熟悉的 DLL,例如Json.NetHAP,这就是问题开始的时候。

在尝试从 NuGet 提取这些引用后,它们失败了,因为“Android 应用程序”项目未知导致未安装 .dll(NuGet 尝试将项目类型与要下载的正确 .dll 匹配,无论是 WindowsPhone、.NET4、 .NET 3.5 等)。

所以我继续手动引用这些库,因为我已经将它们下载到我的 PC 上。引用 Works,但只要我尝试访问HtmlAgilityPack它就会引发异常。

Error CS0012: 
The type 'System.Xml.XPath.IXPathNavigable' is defined in an assembly that is not     referenced. 
You must add a reference to assembly 'System.Xml, Version=x.x.x.x, Culture=neutral

由于 .NET 的 JIT 编译,第一次执行代码时会引发异常,我知道这一点。

问题: 如何在我的 Mono Android 项目中使用我“如此喜爱”的 .dll?

我是否需要这些库的源代码才能在我的项目中使用它们?

提前致谢

4

1 回答 1

1

为了重新编译程序集,您将需要源代码。

要查看 Xamarin.Android 和 Xamarin.iOS 提供了哪些程序集,您可以访问以下两个页面:

http://docs.xamarin.com/guides/android/advanced_topics/assemblies

http://docs.xamarin.com/guides/ios/advanced_topics/assemblies

重新编译它的一种方法是制作一个 Android 类库或 iPhone 类库,并添加指向原始源中所有文件的链接,然后编译它。或者,当 Xamarin 完成其 PCL 支持时,仅在 PCL 中执行类似的操作,以便您拥有一个针对多个平台的 DLL。

您可能还会发现这篇文章很有用,它简要描述了如何针对 Xamarin.Android 编译 HtmlAgilityPack:http ://forums.xamarin.com/discussion/comment/2139/#Comment_2139您可能需要更改一些内容,因为这是从 12 月开始的2012 年,从那以后情况可能发生了变化。

于 2013-09-13T13:34:35.487 回答