2009-06-08 77 views
2

dllmap配置文件条目在Mono中用于将对Windows DLL的请求映射到Linux(.so)库。但是,似乎如果微软的.NET框架试图用这样的条目解析配置文件,会发生错误,因为它不理解“dllmap”。我认为我的发行版中的所有其他内容可以在Linux和Windows XP上分发。在这方面所涉及的所有可移植性中,这种配置输入真的是失败 - 一个不可移植的部分?没有办法在平台上共享这个文件吗?App.config dllmap条目可移植性

回答

2

您确定需要“dllmap”条目吗?难道你不能只依靠自动映射“somelibrary”到Windows上的“somelibrary.dll”和Linux上的“somelibrary.so”吗?

另外,我虽然框架跳过它并不指望条目...

编辑:出货Linux库文件的标准方法是有一个版本的符号链接少指向最新版本。所以你会添加libfmodex.so指向libfmodex-4.22.01.so。然后使用[DllImport("fmodex")],该框架将自动计算其余部分。

+0

1)Windows库的名称是fmodex.dll。 Linux库的名称是libfmodex-4.22.01.so。我不希望重命名它们,我怀疑自动映射会解决这个问题。 2)我以为.NET会跳过它不明白的条目,直到我遇到一个运行时错误 - 显然它从来没有尝试读取配置文件,直到发生错误,然后当它试图读取配置以查看如何反应,它处理文件时有另一个错误。 – BlueMonkMN 2009-06-13 16:26:33

0

将dll导入代码放在一个单独的程序集dll中。然后添加一个yourinterop.dll.config与dllmap条目。它将被MS忽略并由单声道处理。看我的duplicate question