0

次のコマンドを使用して mono アプリケーションを実行しようとすると:

mono SimpleBrowser.exe

Mac で次のエラーが表示されます。

Unhandled Exception: System.TypeInitializationException: An exception  was thrown by the type initializer for Gtk.Application ---> System.DllNotFoundException: glibsharpglue-2
  at (wrapper managed-to-native) GLib.Thread:glibsharp_g_thread_supported ()
  at GLib.Thread.get_Supported () [0x00000] in <filename unknown>:0
  at Gtk.Application..cctor () [0x00000] in <filename unknown>:0    
  --- End of inner exception stack trace ---
  at SimpleBrowser.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0  [ERROR]
  FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was thrown by the type initializer for Gtk.Application ---> System.DllNotFoundException: glibsharpglue-2
  at (wrapper managed-to-native) GLib.Thread:glibsharp_g_thread_supported ()
  at GLib.Thread.get_Supported () [0x00000] in <filename unknown>:0
  at Gtk.Application..cctor () [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
  at SimpleBrowser.MainClass.Main (System.String[] args) [0x00000] in <filename unknown>:0

Mac で不足している glibsharpglue-2 ライブラリを検索しようとしましたが、見つかりませんでした。Monodevelop から起動するとアプリケーションが実行されるため、何が問題なのかわかりません。

4

2 に答える 2

5

アプリを実行する前に、この環境変数を設定する必要があります。

export DYLD_FALLBACK_LIBRARY_PATH="/Library/Frameworks/Mono.framework/Versions/Current/lib:/usr/local/lib:/usr/lib"

アプリを実行するたびにこれを行うのは面倒なので、それを行うラッパー スクリプトを作成する必要があります。

#!/bin/bash 
export DYLD_FALLBACK_LIBRARY_PATH="/Library/Frameworks/Mono.framework/Versions/Current/lib:/usr/local/lib:/usr/lib"
mono SimpleBrowser.exe "$@"

これは最小限のサンプルにすぎません。もう少し高度な例を次に示します。

#!/bin/bash 
MONO_FRAMEWORK=/Library/Frameworks/Mono.framework/Versions/Current/
export DYLD_FALLBACK_LIBRARY_PATH="$MONO_FRAMEWORK/lib:/usr/local/lib:/usr/lib"
EXE_DIR=`dirname $0`
$MONO_FRAMEWORK/mono $MONO_OPTIONS $EXE_DIR/SimpleBrowser.exe "$@"

あとは、スクリプトを実行する実行可能ファイルと同じディレクトリにスクリプトがあることを確認するだけです。オプションを mono に渡すことができます (たとえば --debug など)。これは通常 mono が行う方法 (cat /usr/bin/mkbundle例) であり、公式のApplication Deployment Guidelinesに記載されています。

于 2012-10-22T09:37:04.693 に答える
0

同様の問題のあるブログエントリから: http://ngeor.net/blog/post/2012/08/25/Mac-and-Mono.aspx編集: 更新されたリンク: http://ngeor.net/2012/08 /mac-and-mono/

ここでの問題は、環境変数の欠落にありました。/etc/profile を次のように変更しました (2 行目と 3 行目はドットなしで同じ行にあるはずです。ページに合わせて分割しただけです)。

export MONO_FRAMEWORK_PATH=/Library/Frameworks/Mono.framework/Versions/Current export DYLD_FALLBACK_LIBRARY_PATH="$MONO_FRAMEWORK_PATH/lib:... ...$DYLD_FALLBACK_LIBRARY_PATH:/usr/local/lib:/lib:/usr/lib"

于 2012-10-20T11:44:07.240 に答える