2010-12-23 28 views
19

我是一名Java开发人员,刚刚开始学习C#以开发一对夫妇项目。我很高兴地看到,我习惯使用的许多Java框架(log4j,ant,hibernate等)都有它们的.net版本(log4net,nant,nhibernate)。Log4net引用程序集依赖项问题

我刚刚创建了一个项目,并试图把它log4net的装配基准,但我有以下警告(后面4个错误通知不承认log4net的命名空间和类):

的引用集结号“log4net的” 无法得到解决,因为它的“System.Web程序, 版本= 4.0.0.0,文化=中立, 公钥= b03f5f7f11d50a3a”这 不是当前目标 框架 ”一 依赖。 NETFramework,版本= V4.0,外形=客户”。 请删除对不在目标框架中的组件 的引用或者 考虑重新定位您的项目。

我添加了对System.Web.ApplicationServicesSystem.Web.Services的引用,但它不起作用。任何帮助解决这个依赖性问题将不胜感激。

感谢

回答

28

UPDATE

如果你仍然收到此错误,您正在使用了过期的版本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. 在Project Designer中,找到Target Framework列表,如下所示。

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

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

+0

这非常有帮助。我在安装Visual Studio 2010后创建的第一个项目默认将目标设置为客户端配置文件 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2012-05-31 03:56:12

6

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

1

只是小小的更新。 这个问题已经在3年前被记录下来,并在本月刚刚修复。所以log4net的下一个版本(在1.2.10之后)应该可以和客户端配置文件框架一起工作。

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

0

作为参考为将来的用户:

不要忘了也INSTALL你的目标框架! (我,我自己以为,因为所有的文件夹(v4.0x,v2.0X等)都在那里,我有所有的框架,而不是! 事实证明,我只有NET 4.0 客户端配置文件安装我的系统,无法找到System.Web程序,即使正确的框架是针对

无论如何,在这里下载你需要的.NET Framework: .NET Frameworks Microsoft Downloads

1

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