';重写成员';使用EntLib 5.0和.NET 4

';重写成员';使用EntLib 5.0和.NET 4,.net,.net-4.0,enterprise-library,ilmerge,.net,.net 4.0,Enterprise Library,Ilmerge,我正在将Entlib5.0与.NET4一起使用。它是有效的,但现在我使用它将所有dll合并到一个可再发行的.dll中。除了EntLib5,一切都正常。当我尝试获取记录器时,会出现以下异常: System.TypeLoadException was unhandled by user code Message=Inheritance security rules violated while overriding member: 'Microsoft.Practices.Unity.Resol

我正在将Entlib5.0与.NET4一起使用。它是有效的,但现在我使用它将所有dll合并到一个可再发行的.dll中。除了EntLib5,一切都正常。当我尝试获取记录器时,会出现以下异常:

System.TypeLoadException was unhandled by user code
  Message=Inheritance security rules violated while overriding member: 'Microsoft.Practices.Unity.ResolutionFailedException.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. Security accessibility of the overriding method must match the security accessibility of the method being overriden.
  Source=My.Common.Compacted
  TypeName=Microsoft.Practices.Unity.ResolutionFailedException.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)
  StackTrace:
       at Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, Object existing, String name, IEnumerable`1 resolverOverrides)
       at Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, String name, IEnumerable`1 resolverOverrides) in :line 0
       at Microsoft.Practices.Unity.UnityContainer.Resolve(Type t, String name, ResolverOverride[] resolverOverrides) in :line 0
       at Microsoft.Practices.Unity.UnityContainerExtensions.Resolve[T](IUnityContainer container, ResolverOverride[] overrides) in :line 0
       at Microsoft.Practices.Unity.UnityContainerExtensions.AddNewExtension[TExtension](IUnityContainer container) in :line 0
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Unity.UnityContainerExtensions.AddNewExtensionIfNotPresent[TExtension](IUnityContainer container) in :line 0
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.Unity.UnityContainerConfigurator..ctor(IUnityContainer container) in :line 0
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.CreateDefaultContainer(IConfigurationSource configurationSource) in :line 0
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.CreateDefaultContainer() in :line 0
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.SetCurrentContainerIfNotSet() in :line 0
       at Microsoft.Practices.EnterpriseLibrary.Common.Configuration.EnterpriseLibraryContainer.get_Current() in :line 0
       at My.Common.Diagnostics.Logger..ctor(Boolean failSilently) in D:\TFS Source\My.COMMON\Framework4.0\My.Common\Diagnostics\Logger.cs:line 35
       at My.Common.Tests.LoggerTest.LoggerTestMethod() in D:\TFS Source\My.COMMON\Framework4.0\My.Common.Tests\LoggerTests.cs:line 21
  InnerException: 
我在这里读了,所以这个例外来自.NET4,因为现在它在编码安全方面更严格了,但是我能做什么呢?下载Entlib5源代码并自己修复

有没有办法禁用该检查

我按此顺序合并了文件,可能顺序不对:

"$(TargetDir)My.Common.dll" 
"$(TargetDir)Microsoft.Practices.ServiceLocation.dll" 
"$(TargetDir)Microsoft.Practices.Unity.dll" 
"$(TargetDir)Microsoft.Practices.Unity.Interception.dll" 
"$(TargetDir)Microsoft.Practices.EnterpriseLibrary.Common.dll" 
"$(TargetDir)Microsoft.Practices.EnterpriseLibrary.Logging.dll"
干杯。

已修复


这是如何修复的??有什么想法吗??我面临着完全相同的问题-想知道这是如何修复的…阅读链接。有人在那个帖子上回复了我,并解释说entlib的目标是.NET3.5,因此不可能将其与.NET4库打包在一起。