我試圖按照這個question有效地使用MonoMac的sqlite自定義版本。在monomac上使用dllmap
但是,使用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
並直接用mycustomlib
替換sqlite3
的引用。但是,dllmap路由更好。
我錯過了什麼?我怎樣才能調試呢?
你曾經解決過這個問題嗎?我完全停留在此。在我的情況下,我的dylib最終在Resources中(儘管我想知道你是如何進入「Frameworks」文件夾的?)。你在使用Xamarin Studio嗎? – tofutim
好的,我只是意識到將dylib放入NativeReferences會創建Frameworks文件夾,儘管我不確定如何在Debug中訪問它,您是否也有Frameworks文件夾?我的dllmap仍然不起作用:P – tofutim
沒有得到dllmap的工作。至於/ Frameworks文件夾,我有一個構建後的shell腳本,用於創建目錄結構並將文件移動到那裏 – TheNextman