【问题标题】:Log4net reference assembly dependency issue [duplicate]Log4net 参考程序集依赖问题 [重复]
【发布时间】:2013-08-19 14:27:17
【问题描述】:

我是一名 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 的引用,但它不起作用。任何有关解决此依赖问题的帮助将不胜感激。

谢谢

【问题讨论】:

    标签: c# .net log4net


    【解决方案1】:

    更新

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


    您的项目正在引用不包括 System.Web 的 .NET 4.0 客户端配置文件;您实际上需要参考 full 框架。

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

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

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

    Troubleshooting .NET Framework Targeting Errors 可能也很有趣。

    【讨论】:

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

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

    【讨论】:

      【解决方案3】:

      只是小更新。 此问题已在近 3 年前记录,并在本月修复。因此,下一个版本的 log4net(1.2.10 之后)应该可以与客户端配置文件框架一起使用。

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          作为未来用户的参考:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-11-30
            • 1970-01-01
            • 1970-01-01
            • 2015-08-06
            • 2011-12-25
            相关资源
            最近更新 更多