我有使用 DllImport 属性与非托管程序集对话的代码。在 OS X 中,此程序集作为框架安装。
[DllImport("libraryname", CallingConvention = CallingConvention.Cdecl)]
public static extern void FunctionName();
但是,这会在 Mono 中引发 DllNotFoundException,大概是因为它无法解析框架。
我查看了 Mono 文档:http ://www.mono-project.com/Interop_with_Native_Libraries
他们有这个小块:
Mac OS X 平台有一个 lib 前缀和一个 .dylib 后缀,除非它们是一个框架,在这种情况下它们是一个目录并且事情变得更加复杂。
但是它们不包含任何关于如果它是目录我应该做什么的信息(据我所知)。有人有这样做的经验吗?