3

最近、Xamarin からMono Androidの学生ライセンスを取得しました。

簡単なプロジェクトを作成した後、Android アプリケーション (mono プロジェクト) でJson.NetHAPなどの使い慣れた DLL の使用を開始することにしましたが、それが問題の始まりでした。

NuGet からこれらの参照を取得しようとした後、「Android アプリケーション」プロジェクトが不明であり、.dll がインストールされていないため失敗しました (NuGet は、WindowsPhone、.NET4、 .NET 3.5 など)。

それで、ライブラリをPCにダウンロードしたので、ライブラリを手動で参照することに移りました。参照は機能しますが、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 によって提供されるアセンブリを確認するには、次の 2 つのページにアクセスしてください。

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

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

それを再コンパイルする 1 つの方法は、Android クラス ライブラリまたは iPhone クラス ライブラリを作成し、元のソース内のすべてのファイルへのリンクを追加してからコンパイルすることです。または、Xamarin で PCL サポートが完了したら、PCL で同様のことを行い、複数のプラットフォームを対象とする 1 つの DLL を作成します。

また、Xamarin.Android に対して HtmlAgilityPack をコンパイルする方法を簡単に説明しているこの投稿も役立つかもしれません: http://forums.xamarin.com/discussion/comment/2139/#Comment_2139 2012年以降、状況が変わった可能性があります。

于 2013-09-13T13:34:35.487 に答える