c#mono interop – 无法识别的configuration部分dllmap

我知道:当我把dllmap放到app.config中,以便mono可以find本地dll的linux风格时,我打乱了基于windows的configuration系统,因为没有为它定义configuration部分。

我可以看到我有一些select:

  • 添加一个虚拟的部分 – 这将失败的多个dllmap元素,所以我不认为这是答案
  • 打扰每个平台的不同configuration – 我宁愿避免额外的工作

所以问题是,你如何沉默在Windows上的错误?

<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" /> </startup> <dllmap dll="winscard" target="libpcsclite.so.1"/> </configuration> 

错误:

configuration系统无法初始化

无法识别的configuration部分dllmap。 (… exe.Config第6行)

太好了, 别人以前也问过这个 ,但对我没有帮助。

我认为,如果interop部分被移动到一个单独的程序集文件(exe文件除外),那么我们可以有一个配置文件专门为该DLL(your.dll.config)将被MS框架忽略,但解析单。 实际上,这解决了我的问题。 我不确定这是否是最好的解决方案,但这是可以接受的。

运行:

 MONO_LOG_LEVEL=debug mono my.exe 

是非常有用的,因为它显示什么单声道正在查看/为加载库,所以我看到它正在寻找一个dll.config。