Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Log4net引用程序集依赖性问题_C#_.net_Log4net - Fatal编程技术网

C# Log4net引用程序集依赖性问题

C# Log4net引用程序集依赖性问题,c#,.net,log4net,C#,.net,Log4net,我是一名Java开发人员,刚刚开始学习C语言来开发一个项目。我很高兴看到我使用过的许多Java框架(log4j、ant、hibernate等)都有自己的.net版本(log4net、nant、nhibernate) 我刚刚创建了一个项目,并试图将log4net程序集引用放入其中,但我收到了以下警告(随后是4个错误,通知无法识别log4net命名空间和类): 引用的程序集“log4net” 无法解决,因为它具有 依赖于“System.Web”, 版本=4.0.0.0,区域性=中性, PublicK

我是一名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,概要文件=Client”。 请删除对程序集的引用 不在目标框架内或 考虑重定位你的项目。

我添加了对
System.Web.ApplicationServices
System.Web.Services
的引用,但它不起作用。如果您能帮助解决此依赖性问题,我们将不胜感激


谢谢

更新

如果您仍在获得这个错误,您使用的是Log4net的过时版本,您应该考虑更新到不需要完整的.NET 4框架的版本。感谢您在评论中指出这一点


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

请参见MSDN上的说明

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

    • 对于Visual Basic项目,请单击“编译”选项卡,然后单击 高级编译选项。目标 框架列表处于高级状态 “编译器设置”对话框
    • 对于Visual C#项目,目标框架列表位于 项目的应用程序选项卡 设计师有关详细信息,请参阅 应用程序页,项目设计器 (C)
    • 对于Visual F#项目,目标框架列表位于 项目的应用程序选项卡 设计师
  • 在目标框架列表中,选择.NET Framework版本或 你想要的个人资料。当你点击 好的,项目卸载,然后 在集成开发中重新加载 环境(IDE)。该项目正在进行中 以.NET Framework版本为目标 您刚才选择的


  • 可能还有一个有趣的问题。

    在“项目属性”对话框中将项目设置为以“.Net 4.0 Framework”为目标,而不是“.Net 4.0 Framework客户端配置文件”。

    只是一个小的更新。 此问题已记录近3年,并于本月修复。所以log4net的下一个版本(1.2.10之后)应该可以使用客户机概要文件框架


    作为未来用户的参考:

    别忘了安装你的目标框架! (我自己认为,因为所有的文件夹(v4.0x、v2.0x等)都在那里,所以我有所有的框架。不是! 事实证明,我的系统上只安装了.NET 4.0客户端配置文件,并且找不到system.Web,即使目标是正确的框架

    无论如何,请在此处下载所需的.net framework:

    如果版本1.2.11出现此错误,并且不想更改项目的框架,只需安装客户端配置文件的版本。此版本位于二进制发行版的
    net cp
    文件夹中。

    这非常有用。我在安装Visual Studio 2010后创建的第一个项目将目标设置为Cl默认的客户端配置文件如果针对客户端配置文件是有效的,Maciej和101100的答案更好:使用不依赖system.web(1.2.11)的log4net版本。感谢您的评论,@Philippe--我已经更新了答案。