c#mono interop - 无法识别的配置节dllmap

时间:2016-04-29 17:40:45

标签: c# linux windows configuration mono

我理解:当我将dllmap放入app.config以便mono可以找到本机dll的linux风格时,我打乱了基于Windows的配置系统,因为没有为它定义配置部分。

我可以看到我有一些选择:

  • 为它添加一个虚拟部分 - 这对于多个dllmap元素会失败,所以我不认为这是答案
  • 每个平台都有不同的配置 - 我宁愿避免额外的工作

所以问题是,你如何在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>

错误:

  

配置系统无法初始化

     

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

1 个答案:

答案 0 :(得分:0)

非常棒someone else has asked this before,但对我没有帮助。

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

运行:

MONO_LOG_LEVEL=debug mono my.exe

非常有用,因为它显示了在加载库时单声道正在查看的内容,因此我看到它正在寻找一个dll.config。