【问题标题】:Do i have to recompile a .dll in order to use it on a Mono Android Project?我是否必须重新编译 .dll 才能在 Mono Android 项目上使用它?
【发布时间】:2013-09-13 23:29:22
【问题描述】:

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

在做了一个简单的项目后,我决定开始在我的 Android 应用程序(单项目)上使用一些我熟悉的 DLL,例如 Json.Net 和 H.A.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

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

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

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

提前致谢

【问题讨论】:

    标签: c# .net xamarin.android


    【解决方案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 月开始的,从那时起情况可能已经改变。

    【讨论】:

    • 如何针对 Xamarin 提供的程序集重新编译源代码?你能把它加到你的答案中吗?我敢打赌它会帮助许多其他人。顺便说一句很棒的昵称
    猜你喜欢
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    相关资源
    最近更新 更多