2

system.drawing に依存する MonoMac でデスクトップ アプリを作成しています。これは MonoDevelop 内では正常に機能しますが、作成された .app パッケージは機能しません。

私はこの例外を受け取ります:

System.DllNotFoundException: gdiplus.dll

現在、この特定の問題については Web で多くの参照がありますが、最近のものの 1 つはhttp://bugzilla.xamarin.com/show_bug.cgi?id=3263です。

しかし、私はそれを機能させることができませんでした。libgdiplus.dll.dylib を lib フォルダーからアプリの MonoBundle フォルダーにコピーできます。MONO_LOG_LEVEL を debug に設定すると、次のようになります。

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/... フォルダーで検索しているため、これは役に立ちません。MonoBundle フォルダーの構成ファイルと libgdiplus.dll.dylib.config ファイル (および libgdiplus.dll.config) の両方に dllmap エントリを追加しようとしました。同じエラーが発生し続けるため、これらは無視されているようです。

ここからどこへ行けばいいですか?

4

1 に答える 1

0

System.Drawing の代わりに MonoMac.CoreGraphics を使用するように切り替えることをお勧めします。WinForms API は、MonoMac アプリ (System.Drawing.Color と System.Drawing.RectangleF、および SizeF を除く) では実際には考慮されていませんでした。

これに関するバグ レポートをhttp://bugzilla.xamarin.comに送信できますか? 私かセバスチャンのどちらかが、この問題を長期的に解決する方法を検討する必要があります。ただし、解決策が出るまでにどれくらいの時間がかかるかは約束できません。そのため、CoreGraphics の使用を検討する必要があります。

于 2012-09-04T12:11:03.660 に答える