Windows で使用していた C# コードを、Mono 経由で Mac で使用できるように移植しています。このコードでは、アンマネージ C++ dll に P\Invoke します。残念ながら、私たちのビルド プロセスでは、Mac 上のフレームワーク ファイルしか配布できず、dylib ファイルは配布できません。
コードを Mono 用に移植すると、すべて正常に動作しますが、P\Invoke は Framework ファイルに組み込まれます。デフォルトの検索パスにあるはずの /Library/Frameworks フォルダーにフレームワーク ファイルを追加しようとしましたが、DllNotFound 例外が引き続き発生します。Mono Interop Guideによると、 Monoが Mac で検索する拡張子として .so を追加すると問題が発生します。そのため、構成ファイルを追加して、ターゲットを .framework ファイルとして指定しようとしましたが、それでも同じ例外が発生しました。Mono ガイドでは、フレームワークで P\Invoke を実行するとより複雑になると述べていますが、正確な問題やそれらを回避する方法については言及していません。
Mono のフレームワークに P\Invoke する方法を知っている人はいますか?