Log4net引用程序集依赖性问题

cra*_*man 19 .net c# log4net

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

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

引用的程序集"log4net"无法解析,因为它依赖于"System.Web,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a",它不在当前目标框架中".NETFramework,Version = v4 0.0,档案=客户端".请删除不在目标框架中的程序集的引用或考虑重新定位项目.

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

谢谢

Mar*_*off 28

更新:

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


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

请参阅如何:在MSDN上定位特定的.NET Framework版本或配置文件以获取路线.

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

    • 对于Visual Basic项目,单击"编译"选项卡,然后单击"高级编译选项"."目标框架"列表位于"高级编译器设置"对话框中.
    • 对于Visual C#项目,目标框架列表位于项目设计器的"应用程序"选项卡上.有关更多信息,请参阅应用程序页面,项目设计器(C#).
    • 对于Visual F#项目,目标框架列表位于项目设计器的"应用程序"选项卡上.
  4. 在"目标框架"列表中,选择所需的.NET Framework版本或配置文件.单击"确定"后,项目将卸载,然后在集成开发环境(IDE)中重新加载.该项目现在面向您刚刚选择的.NET Framework版本.

可能还有兴趣的是.NET Framework Targeting Errors故障排除.


Llo*_*oyd 6

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