在monomac上使用dllmap

时间:2013-08-28 17:40:26

标签: sqlite mono dylib monomac xamarin.mac

我正在尝试使用MonoMac的自定义sqlite版本,有效地按照此question

但是,使用dllmap似乎无法正常工作。

我的自定义dylib正在部署到[myapp.app]/Contents/Frameworks/mycustomlib.dylib

otool -L mycustomlib.dylib的输出看起来是正确的:

@executable_path/../Frameworks/mycustomlib.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

我的myapp.exe.config文件如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <dllmap dll="sqlite3" target="@executable_path/../Frameworks/mycustomlib.dylib" os="!windows" />
</configuration>

我已经确认它已与myapp.exe中的[MyApp.app]/Contents/MonoBundle一起复制。

我可以通过重新编译Mono.Data.Sqlite并直接将sqlite3的引用替换为mycustomlib来强制执行此操作。但是,dllmap路由要好得多。

我错过了什么?我该怎么调试呢?

1 个答案:

答案 0 :(得分:1)

将dllmap配置从green移至新的myapp.exe.config文件,以使重映射生效。