5

我剛剛在我的項目中升級了log4net,並且由於某個組件依賴於舊版本的log4net而出現一些程序集綁定問題。如何將log4net重定向到新版本

由組件預計的版本是

log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821 

我的版本是

log4net, Version=1.2.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a 

我如何使這種結合,妥善解決(只有一個API的差異,它不應該這個組件的問題)。

我已經嘗試將以下內容添加到我的web.config中,但它不起作用。

<dependentAssembly> 
    <assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral" /> 
    <bindingRedirect oldVersion="1.2.10.0" newVersion="1.2.12.0" /> 
    </dependentAssembly> 

回答

8

我不相信這是可能執行捆綁重定向到一個不同的公共密鑰的程序集。

  1. 你需要下載一個與舊密鑰(http://psg.mtu.edu/pub/apache//logging/log4net/binaries/log4net-1.2.12-bin-oldkey.zip

  2. 然後更新您的代碼簽署的log4net v1.2.12.0的版本,替換到引用:

    log4net, Version=1.2.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a

    log4net, Version=1.2.12.0, Culture=neutral, PublicKeyToken=1b44e1d426115821

在相關說明:您可以將版本範圍放在重定向oldVersion="0.0.0.0-1.2.11.0",以增加靈活性。

+0

我也[找到了一種方法來包括兩個程序集並排。](http://stackoverflow.com/questions/3158928/referencing-2-differents-versions-of-log4net-in-the-same - 解決方案/ 3163050#3163050)[唉](http://stackoverflow.com/questions/8743992/how-do-i-work-around-log4net-keeping-changing-publickeytoken) –

相關問題