Log4net引用程序集依赖性问题

时间:2010-12-23 12:05:48

标签: c# .net log4net

我是一名Java开发人员,刚刚开始学习C#来开发一个项目。我很高兴看到我习惯使用的许多Java框架(log4j,ant,hibernate等)都有.net版本(log4net,nant,nhibernate)。

我刚刚创建了一个项目,并尝试将log4net程序集引用放入其中,但是我收到了以下警告(后面跟着4个错误,告知无法识别log4net名称空间和类):

  

引用的程序集“log4net”   无法解决,因为它有一个   依赖于“System.Web,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b03f5f7f11d50a3a“哪个   不在目前的目标   骨架   “.NETFramework,版本= V4.0,外形=客户”。   请删除对程序集的引用   不在目标框架或   考虑重新定位你的项目。

我添加了对System.Web.ApplicationServicesSystem.Web.Services的引用,但它不起作用。任何有关解决此依赖性问题的帮助都将非常感激。

由于

5 个答案:

答案 0 :(得分:28)

<强>更新

如果您仍然遇到此错误,那么您使用的是log4net的过时版本,您应该考虑更新到current version,这不需要完整的.NET 4.0框架。感谢@Philippe在评论中指出这一点。


您的项目引用了.NET 4.0 客户端配置文件,其中不包含System.Web;你实际上需要引用完整的框架。

请参阅MSDN上的How To: Target a Specific .NET Framework Version or Profile了解路线。

  
      
  1. 在Visual Studio中,打开要更改的项目。
  2.   
  3. 在“解决方案资源管理器”中右键单击该项目,然后单击“属性”。
  4.   
  5. 在项目设计器中,找到目标框架列表,如下所示。

         
        
    • 对于Visual Basic项目,单击“编译”选项卡,然后单击“确定”   高级编译选项。目标   框架列表在Advanced中   “编译器设置”对话框。
    •   
    • 对于Visual C#项目,目标框架列表位于   项目的应用程序选项卡   设计师。有关更多信息,请参阅   应用页面,项目设计师   (C#)。
    •   
    • 对于Visual F#项目,目标框架列表位于   项目的应用程序选项卡   设计器。
    •   
  6.   
  7. 在“目标框架”列表中,选择.NET Framework版本或   您想要的个人资料。当你点击   好的,项目卸载然后   重新加载集成开发   环境(IDE)。该项目现在   目标是.NET Framework版本   你刚刚选择了。

  8.   

可能感兴趣的还有Troubleshooting .NET Framework Targeting Errors

答案 1 :(得分:6)

将项目设置为“.Net 4.0 Framework”,而不是项目属性对话框中的“.Net 4.0 Framework Client Profile”。

答案 2 :(得分:1)

只是小更新。 这个问题已经记录在差不多3年前了,并且在本月修复了。所以log4net的下一个版本(在1.2.10之后)应该可以使用客户端配置文件框架。

https://issues.apache.org/jira/browse/LOG4NET-174

答案 3 :(得分:1)

如果您在1.2.11版中遇到此错误,并且您不想更改项目的框架,只需安装客户端配置文件的版本即可。它位于二进制分发中的net-cp文件夹中。

答案 4 :(得分:0)

作为未来用户的参考:

不要忘记 安装 您定位的框架! (我,我自己,以为因为所有的文件夹(v4.0x,v2.0X等)都在那里我有所有的框架。不! 事实证明我只在我的系统上安装了.NET 4.0 客户端配置文件,并且找不到System.Web,即使正确的框架是针对性的。

无论如何,请在此处下载您所需的.net框架: .NET Frameworks Microsoft Downloads