我知道:当我把dllmap放到app.config中,以便mono可以find本地dll的linux风格时,我打乱了基于windows的configuration系统,因为没有为它定义configuration部分。
我可以看到我有一些select:
所以问题是,你如何沉默在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。