我正在尝试使用log4net在Windows CE / Windows Embedded项目中提供日志记录。但是,在调试项目时,我得到以下异常
发生了System.TypeLoadException 消息= “TypeLoadException” 堆栈跟踪: at log4net.LogManager.GetLogger(Assembly repositoryAssembly,String name) at log4net.LogManager.GetLogger(Type type) 在Sis.SiLogCE.Broker.StartBroker..cctor() 在Sis.SiLogCE.Broker.EntryPoint.Program.Main()
来自以下一行:
private static readonly ILog log = LogManager.GetLogger(typeof(StartBroker));
起初,我以为我可能一直在使用错误的dll /旧的dll,所以我下载了最新的版本 - 我使用的是来自1.2.12-bin-newkey
的log4net.dll,并在.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进行了测试 - 它没有什么不同,同样的例外情况也是如此。
答案 0 :(得分:1)
您使用的是二进制版本,还是从源代码构建的?我问this页提到Compact Framework 1.0& 2.0版本是二进制版本支持的 不 ,但如果从源版本构建,则受支持。