0

Mono for Android を使用して Android アプリケーションから小さな Excel ワークシートを作成したいと思います。EPPlus と ExcelLibrary .NET ライブラリの両方を使用してみましたが、プロジェクトのビルドに問題があります。

C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2,2): Error: Exception while loading assemblies: System.IO.FileNotFoundException: Could not load assembly 'System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Perhaps it doesn't exist in the Mono for Android profile?

Mono for Android を介して Excel ファイルを操作するための修正方法はありますか?

ありがとう。

4

1 に答える 1

1

ビルド済みの.NET4.0アセンブリをMonoforAndroidプロジェクトに参照しようとしているようです。これを確実に行うことはできません(運が良ければうまくいくこともあります)。MonoTouchおよびMonoforAndroidにはSystem.Drawingアセンブリがないため、それにリンクするライブラリを使用することはできません。

あなたがする必要があるのは、EPPlusまたはExcelLibraryライブラリ用の新しいプロジェクトを作成し、MonoforAndroidライブラリプロジェクトタイプを使用することです。また、Android用のMonoにはないSystem.Drawingの部分を使用しないようにプロジェクトにいくつかの変更を加える必要があります(System.Drawing.RectangleFやSizeFのようないくつかのビットがあります) 、しかしそれのほとんどが欠けています)。

私はnpoiプロジェクト(EPPlusよりも同意できるライセンスを持っています)を使用してMonoTouchでこれを行うことに取り組んでいましたが、他のことに忙しすぎました。

ここでAPIのクリーンアップに取り組んでいるnpoiのフォークを持っています:https ://github.com/jstedfast/npoi/tree/enumification

それを終えてアップストリームにマージしたら、MonoTouchとMono4Androidが使用する.NETのサブセットへのライブラリの移植に取り組む新しいブランチを作成する予定です。私はおそらくそれを「モバイル」か何かと呼ぶでしょう。

それまでの間、手っ取り早い解決策は、Androidライブラリプロジェクト用の新しいMonoを作成し、npoiと同じ方法ですべてのソースファイルをプロジェクトに追加してから、ビルドしてみることです。失敗しますが、エラーは、ライブラリのどの部分を容赦なく引き裂くかを判断するための良い出発点になります。コンパイルされるまでそれを続けます。

上記でリンクしたnpoiリポジトリのいずれかを使用する場合、font.metricsや、MonoTouch / Android用に適切にビルドすることは考えられないその他のリソースファイルを作成するための作業をすでに行っているので、 1.2.5のようなリリースを使用する場合よりも、実行する作業が少し少なくなります。

于 2013-02-28T14:13:07.897 に答える