3

DataSetExtensionライブラリを使用するMonoforAndroidプロジェクトにサードパーティの.netライブラリをインポートしました。コンパイルしようとすると、次のエラーメッセージが表示されます。

エラー51アセンブリのロード中の例外:System.IO.FileNotFoundException:アセンブリをロードできませんでした'System.Data.DataSetExtensions、Version = 4.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089'。おそらくそれはMonoforAndroidプロファイルには存在しませんか?ファイル名:'System.Data.DataSetExtensions.dll' at Monodroid.Tuner.MonoDroidResolver.Resolve(AssemblyNameReference reference、ReaderParameters parameters)at Xamarin.Android.Tasks.ResolveAssemblies.AddAssemblyReferences(List`1 assembly、AssemblyDefinition assembly)

この問題を解決するために、GACから.net System.Data.DataSetExtensionsを追加し、ローカルにコピーするように設定できます。ただし、デバイスに展開したときに機能するかどうかの手がかりはありますか?

4

1 に答える 1

3

Mono for Android プロファイルで利用できないものに DLL がアクセスしようとすると、アプリケーションがクラッシュするため、これは一般的には良い方法ではありません。この回答には、それに関する詳細がいくつかあります。プロファイルに含まれるアセンブリのリストは、Xamarin のサイトでも入手できます。多くの場合、Android 用の Mono プロファイルは Silverlight のプロファイルと非常に似ています。Silverlight では System.Data.DataSetExtensions を使用できないため、ここに存在しないことは驚くことではありません。

あなたが試すことができるかもしれないことの 1 つは、System.Data.DataSetExtensions を Mono for Android プロファイルに対して自分でコンパイルすることです。これが機能するかどうかはわかりませんが、自分で試したことはありませんが、可能かどうかを確認する簡単な方法であり、アプリケーションで .NET 4.0 DLL にリンクするよりもはるかに安全です。System.Data.DataSetExtensions の Mono の実装は、Github リポジトリで入手できます。

于 2012-06-25T13:53:33.873 に答える