我想使用带有nhibernate的新版本的log4net。 log4net版本是我自己从svn源编译的,所以我必须使用新密钥对其进行签名,这意味着更改了publicKeyToken。我还将版本设置为1.2.11.0。问题是nhibernate引用了旧的1.2.10.0版本的log4net。
我尝试在app.config中配置此部件的程序集绑定重定向:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="log4net"
publicKeyToken="1b44e1d426115821"/>
<bindingRedirect oldVersion="1.2.10.0"
newVersion="1.2.11.0"/>
</dependentAssembly>
</assemblyBinding>
然而它似乎没有任何效果。我认为这是因为publicKeyToken不匹配。
有没有其他方法可以做到这一点或做到: 一个。使用log4net 1.2.10并使用我感兴趣的svn代码库中的添加和修复创建一个log4net扩展项目? 要么 湾使用我自己的log4net构建构建我自己的nhibernate版本 要么 C。让log4net团队使用正确的publicKeyToken
发布新版本的log4net我更喜欢c。老实说,我无法理解为什么他们没有多年发布新版本,svn源中有很多修复和新功能。
答案 0 :(得分:2)
你想要的正是签署旨在防止的。
请注意,您的选项c)还需要新的Hibernate构建。
我认为b)是你最好的镜头。