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

发布于 2024-12-10 15:08:29 字数 488 浏览 0 评论 0原文

使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我很OK 2024-12-17 15:08:29

我怀疑问题在于您正在使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文