I am a Java developer and have just started learning C# to develop a couple project. I am happy to see that many Java frameworks that I am used to work with (log4j, ant, hibernate etc.) have their .net versions (log4net, nant, nhibernate).
I have just created a project and tried to put log4net assembly reference in it, but I am having the following warning (followed by 4 errors informing failure to recognize log4net namespace and classes):
The referenced assembly “log4net”
could not be resolved because it has a
dependency on “System.Web,
Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a” which
is not in the currently targeted
framework
“.NETFramework,Version=v4.0,Profile=Client”.
Please remove references to assemblies
not in the targeted framework or
consider retargeting your project.
I added reference to System.Web.ApplicationServices and System.Web.Services but it’s not working. Any help on solving this dependency issue will be much appreciated.
Thanks
UPDATE:
If you’re still getting this error, you’re using an out-of-date version of log4net and you should consider updating to the current version, which does not require the full .NET 4.0 framework. Thanks to @Philippe for pointing this out in a comment.
Your project is referencing the .NET 4.0 client profile which does not include System.Web; you actually need to reference the full framework.
See How To: Target a Specific .NET Framework Version or Profile on MSDN for directions.
Possibly also of interest is Troubleshooting .NET Framework Targeting Errors.