log4net:程序集 System.Xml.XmlElement 未引用错误,尽管未使用
使用 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。
有什么建议吗? 谢谢!
I'm getting a weird compiler error when using log4net:
XmlConfigurator.Configure(new FileInfo("LogConfig.log4net")); // produces error
ILog log = LogManager.GetLogger("MyLogger");
log.Info("hello");
reports
Error 1 The type 'System.Xml.XmlElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
This happens on the first line, although I do not really mention any System.Xml things there myself. Also, it is probably noteworthy that I target .net 4.0 and the compiler demands the .net 2.0 assembly. I just recently switched my project to target 4.0.
Any suggestions?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我怀疑问题在于您正在使用
XmlElement
类型的参数调用具有重载的方法。虽然我可以看到它的论点没有失败,但我认为要求参考并不是完全不合理的。最简单的修复方法就是添加对 System.Xml.dll 的引用 - 它实际上并不需要 .NET 2.0 版本;只是 log4net 程序集引用了它。
I suspect the problem is that you're calling a method with an overload using a parameter of type
XmlElement
. While I can see the argument for it not failing, I think it's not entirely unreasonable to require the reference.The simplest fix is just to add a reference to System.Xml.dll - it doesn't really need the .NET 2.0 version; it's just that that's the one that the log4net assembly references.