2

我正在使用依赖于 system.drawing 的 MonoMac 制作桌面应用程序。这在 MonoDevelop 中运行良好,但创建的 .app 包不能。

我得到这个例外:

System.DllNotFoundException: gdiplus.dll

现在,网络上有很多关于这个特定问题的参考资料,最近的参考资料之一是:http: //bugzilla.xamarin.com/show_bug.cgi ?id=3263 。

但是,我一直无法让它工作。我可以将 libgdiplus.dll.dylib 从 lib 文件夹复制到我的应用程序的 MonoBundle 文件夹中,这让我更进一步。现在将 MONO_LOG_LEVEL 设置为调试告诉我:

Mono: DllImport error loading library 'dlopen([app]/Contents/MonoBundle/libgdiplus.dll.dylib, 9): Library not loaded: /Library/Frameworks/Mono.framework/Versions/2.10.9/lib/libglib-2.0.0.dylib
  Referenced from: [app]/Contents/MonoBundle/libgdiplus.dll.dylib
  Reason: image not found'.

我也在那里复制了 libglib-2.0.0*.dylib。这无济于事,因为它在 Library/Frameworks/... 文件夹中进行搜索。我尝试将 dllmap 条目添加到 MonoBundle 文件夹中的配置文件以及 libgdiplus.dll.dylib.config 文件(和 libgdiplus.dll.config)中。这些似乎被忽略了,因为我不断收到同样的错误。

我从这里去哪里?

4

1 回答 1

0

我可能会建议切换到使用 MonoMac.CoreGraphics 而不是 System.Drawing 作为最佳解决方案。WinForms API 并未真正考虑用于 MonoMac 应用程序(System.Drawing.Color 和 System.Drawing.RectangleF 和 SizeF 除外)。

您能否向http://bugzilla.xamarin.com提交有关此问题的错误报告?无论是我还是塞巴斯蒂安,都需要寻找长期解决这个问题的方法。不过,我不能保证您可能需要等待多长时间才能找到解决方案,因此您确实应该考虑使用 CoreGraphics。

于 2012-09-04T12:11:03.660 回答