I tried to compile a project dependent on the Log4Net logging framework using .NET 4.0 RC and ran into some problems.
Out of the box (just changing the target to .NET 4.0), it no longer works, a security exception is thrown.
Inheritance security rules violated while overriding member: 'log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. Security accessibility of the overriding method must match the security accessibility of the method being
This was resolved by adding the following line to the log4net assembly(in AssemblyInfo.cs):
[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]
Can someone explain why this is required and are there alternatives to doing it this way? Is this related to how Log4Net is written or something else?