TypeLoadException from log4net LogManager.GetLogger

本文关键字:GetLogger LogManager log4net from TypeLoadException | 更新日期: 2023-09-27 18:36:40

我正在尝试使用 log4net 在 Windows CE/Windows Embedded 项目中提供日志记录。但是,在调试项目时,我收到以下异常

系统类型加载发生异常 消息="类型加载异常" 堆栈跟踪: 在log4net。LogManager.GetLogger(Assembly repositoryAssembly, String name) 在log4net。LogManager.GetLogger(类型) at Sis.SiLogCE.Broker.StartBroker..cctor() at Sis.SiLogCE.Broker.EntryPoint.Program.Main()

从以下行:

private static readonly ILog log = LogManager.GetLogger(typeof(StartBroker)); 

起初,我认为我可能使用了错误的dll/旧dll,所以我下载了最新版本 - 我使用的是log4net.dll从1.2.12-bin-newkey中找到的.net-cp 3.5。

我已经查看了其他示例,尽管文档和我看不出为什么我在这里遇到类型加载异常。我现在几乎不知道是什么夫妇导致了异常。

背景资料:

应用程序将部署在 Windows CE 6 和 Windows Embedded/Windows Mobile 6 和 6/5 设备上。

.net 3.5.netcf

下面的块显示了从名为"log4net.config"的XML文件加载log4net的配置。

    string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().
        GetModules()[0].FullyQualifiedName) + "log4net.config";
    if (File.Exists(path))
    {
        XmlConfigurator.ConfigureAndWatch(new FileInfo(path));
    }

编辑:

到目前为止,我只在Wince 6.0上进行了测试,所以我刚刚尝试了Windows Mobile 6.5 - 没有什么不同,出现了相同的例外。

TypeLoadException from log4net LogManager.GetLogger

您使用的是二进制版本,还是从源代码构建?我问,因为这个页面提到二进制版本不支持紧凑框架1.0和2.0,但如果从源代码版本构建,则支持。