我想使用带有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源中有很多修复和新功能.
最佳答案 你想要的正是签署旨在防止的.
请注意,您的选项c)还需要新的Hibernate构建.
我认为b)是你最好的投篮.