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

您似乎正在尝试将预构建的 .NET 4.0 程序集引用到您的 Mono for Android 项目中。你不能可靠地做到这一点(如果幸运的话,有时它会起作用)。MonoTouch 和 Mono for Android 没有 System.Drawing 程序集,因此您不能使用链接到它的库。

您需要做的是为 EPPlus 或 ExcelLibrary 库创建一个新项目,并使用 Mono for Android Library Project 类型。您可能还需要对项目进行一些修改,使其不使用 Mono for Android 所没有的 System.Drawing 部分(它有一些像 System.Drawing.RectangleF 和 SizeF ,但缺少大部分内容)。

我打算使用npoi项目(它的许可证比 EPPlus 更受欢迎)为 MonoTouch 做这件事,但是一直忙于其他事情。

我有一个 npoi 的分支,我正在这里清理 API:https ://github.com/jstedfast/npoi/tree/enumification

一旦我完成并在上游合并,我的计划是创建一个新分支,我将在其中将库移植到 MonoTouch 和 Mono4Android 使用的 .NET 子集。我可能会称它为“移动”或其他东西。

同时,快速而肮脏的解决方法是创建一个新的 Mono for Android Library 项目,以与 npoi 相同的方式将所有源文件添加到其中,然后尝试构建。它会失败,但错误将为您提供一个很好的起点,以便确定要无情地删除库的哪些部分。继续这样做,直到它编译。

如果您使用我上面链接到的任何一个 npoi 存储库,我已经完成了一些工作来制作 font.metrics 和其他一些我无法为 MonoTouch/Android 正确构建的资源文件,所以会有与使用 1.2.5 之类的版本相比,要做的工作少一些。

于 2013-02-28T14:13:07.897 回答