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

标签 c# linux windows configuration mono

我理解:当我输入 dllmap进入 app.config 以便 mono 可以找到 native 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>

错误:

Configuration system failed to initialize

Unrecognized configuration section dllmap. (...exe.Config line 6)

最佳答案

太好了 someone else has asked this before ,但对我没有帮助。

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

运行:

MONO_LOG_LEVEL=debug mono my.exe

非常有帮助,因为它显示了 mono 在加载库时正在寻找/寻找什么,所以我看到它正在寻找 dll.config。

关于c# mono interop - 无法识别的配置部分 dllmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36944460/

相关文章:

linux - 如何为 bash 命令设置多个环境变量

windows - 不会让我在 Ruby 提示符下安装 Gem

windows - 是否有 OutputDebugString 的 Unicode 替代品?

c# - 方法的优先顺序?

c# - 单击组合框按钮的任何特定事件

linux - 报告中未显示象形文字语言 - 祖鲁语

linux - 如何让 Crontab 和 Tar 一起正确工作

Windows CMD 批处理 : concatenating variable NAME in a loop

c# - string.Join 抛出 OutOfMemory 异常

c# - 如何在后面的代码中获取 ListBox ItemsPanel