AssemblyInfo.cs中找不到类型或命名空间名称

3
我得到了编译错误:“在AssemblyInfo.cs中找不到'type or namespace name 'log4net'”,这个错误是什么意思,我该如何解决?在AssemblyInfo.cs文件中,这是有问题的那一行代码。
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]

我刚下载了一个新项目,在编译时遇到了这个错误。这个文件怎么会添加这样的条目呢?


2
我的猜测是项目在某个时候引用了 log4net,而你在下载中缺少了这个程序集。 - Tim
1
奇怪的是,每个项目都可以单独构建,只有在重新构建解决方案时才会出现错误。显然,昨晚我离开后小精灵们修复了问题,因为今天早上从源代码控制获取最新版本后问题消失了。我仍在努力追踪是什么改变使问题消失了。 - Walter
5个回答

8
在解决方案资源管理器中右键单击您的项目,然后单击添加引用
一个窗口会弹出来,您应该能够点击浏览选项卡。
导航到您的log4net.dll文件所在的位置,并将其选择为参考。
如果您没有log4net.dll,您可以从此页面下载log4net。

最好直接到源站下载:https://logging.apache.org/log4net/download_log4net.cgi - Andrew Jens

1

在我的情况下,将调用的项目从 .NET Framework 4.0 更新到 .NET Framework 4.7.2,可以解决这个 log4net 问题。 - Nicolas Raoul

0

很可能您使用的log4net.dll版本与您的配置文件不匹配。

此警告可能会伴随以下错误出现:

警告 3 当前目标框架“.NETFramework,Version=v4.0,Profile=Client”不包括“System.Web,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”,而被引用的程序集“log4net”依赖于它。这导致被引用的程序集无法解析。要解决此问题,请(1)更改此项目的目标框架,或者(2)从项目中删除被引用的程序集。 CSTestLog4Net

注意:System.Web不在客户端配置文件中(对于某些新项目类型,默认为客户端配置文件),因此需要非客户端配置文件才能运行它。

有关更多详细信息,请参见此线程:为什么log4net 1.2.10需要System.Web?


0

你需要在项目的“引用”文件夹中添加对log4net.dll的引用


0
我安装log4net后也遇到了同样的问题,我的解决方法是:
  1. 清理解决方案
  2. 重新构建解决方案
  3. 关闭Visual Studio
  4. 再次打开解决方案

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接