我最近从Xamarin获得了Mono Android的学生执照。
在做了一个简单的项目之后,我决定开始在我的Android应用程序(单声道项目)上使用我熟悉的一些DLL,例如Json.Net和H.A.P,这就是问题开始的时候。 / p>
尝试从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
由于J.I.T编译.NET,第一次执行代码时会引发异常,我知道这一点。
问题: 我怎么能在我的Mono Android项目中使用我的“如此喜爱的”.dll?
我是否需要这些库的源代码才能在我的项目中使用它们?
先谢谢
答案 0 :(得分: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您可能需要更改一些内容,因为这是从2012年12月开始的,因为事情可能已经发生了变化。 / p>