我正在使用Xamarin.Android,有一个像这样设置的项目
使用mono,可以简单地在App.config中使用dllmap将任何DllImports重新映射到NativeMethods.dll到NativeMethods.so
我试过,但我似乎无法使用Xamarin.Android。我想避免编译两个MSIL P / Invoke库以及两个本机库(Android和Windows各一个)。
这是我的app.config看起来像什么
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<dllmap dll="NativeMethods.dll" target="NativeMethods.so"/>
</configuration>
我在P / Invoke DLL项目,Xamarin.Android应用程序项目中尝试了这个,但它在任何地方都不起作用。我发现问题的唯一参考是this与iOS相似的参考。有没有人遇到/解决了这个问题?我错过了什么?如果为Xamarin.iOS执行此操作的解决方案有任何不同,我也会感兴趣,因为这将是我需要定位的下一个平台。
提前致谢!
答案 0 :(得分:3)
使用NativeMethods
(不带扩展名)作为库的名称。
.NET将自动附加.dll
,Mono会在搜索库时自动附加.so
。
但是对于iOS,你需要一个dllmap(因为库名必须是__Internal
)