log4net:程序集System.Xml.XmlElement未引用错误,但未使用

时间:2011-10-17 14:26:22

标签: c# .net compiler-errors log4net

使用log4net时,我遇到了一个奇怪的编译器错误:

XmlConfigurator.Configure(new FileInfo("LogConfig.log4net")); // produces error
ILog log = LogManager.GetLogger("MyLogger");
log.Info("hello");

报告

错误1类型“System.Xml.XmlElement”在未引用的程序集中定义。您必须添加对程序集'System.Xml,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用。

这发生在第一行,虽然我自己并没有真正提到任何System.Xml的东西。此外,可能值得注意的是,我的目标是.net 4.0,编译器需要.net 2.0程序集。我刚刚将项目切换到目标4.0。

有什么建议吗? 谢谢!

1 个答案:

答案 0 :(得分:5)

我怀疑问题是您使用XmlElement类型的参数调用重载的方法。虽然我可以看到失败的论点,但我认为要求引用并不是完全不合理的。

最简单的解决方法是添加对System.Xml.dll的引用 - 它不真正需要.NET 2.0版本;它就是log4net程序集引用的那个。