使用Common.Logging與log4net的組件版本相容問題

來源:互聯網
上載者:User

標籤:style   class   code   color   get   http   

近期使用了Common.Logging的ILog介面做日誌介面,同時利用其log4net適配器與log4net記錄器來記錄系統日誌,在使用過程中碰到了log4net版本問題。

項目組件管理中安裝組件包:

PM> Install-Package Common.Logging

PM> Install-Package Common.Logging.Log4Net  【2.0.1版本;依賴Common.Logging (≥ 2.0.0); log4net (= 1.2.10)】

項目中將引用log4net.dll版本為 1.2.10.0,在此配套版本情況下,運行出現錯誤: {"Unable to create type ‘Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net‘"}

也將log4net組件升級到最新版本1.2.13失敗,Install-Package : 將“log4net 1.2.10”更新到“log4net 2.0.3”失敗。找不到與“log4net 2.0.3”相容的“Common.Logging.Log4Net”版本。

 

將Common.Logging.Log4Net版本刪除,重新安裝以下版本

PM> Install-Package Common.Logging.Log4Net1211  【2.2.0版本;Common.Logging (≥ 2.0.0);Log4Net (≥ 1.2.11)】

項目中log4net.dll版本為 1.2.11.0, 運行OK,升級log4net1.2.13版本,升級成功,運行OK;

注意設定檔中組件檔名差異

  <common>    <logging>      <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net1211">

版本重新導向

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">      <dependentAssembly>        <assemblyIdentity name="Common.Logging" publicKeyToken="af08829b84f0328e" culture="neutral" />        <bindingRedirect oldVersion="0.0.0.0-2.2.0.0" newVersion="2.2.0.0" />           </dependentAssembly>        <dependentAssembly>        <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />        <bindingRedirect oldVersion="0.0.0.0-1.2.13.0" newVersion="1.2.13.0" />      </dependentAssembly>    </assemblyBinding>


原因主要是由於log4net version 1.2.11與1.2.10的publicKeyToken不同所致。可利用VS工具SN –T 組件檔案名稱.dll查看公開金鑰。

log4net (≥ 1.2.11)  公開金鑰標記為 669e0ddf0bb1aa2a

log4net (= 1.2.10)  公開金鑰標記為 1b44e1d426115821

 

http://www.nuget.org/packages/Log4Net/

http://www.nuget.org/packages/Common.Logging/

http://www.nuget.org/packages/Common.Logging.Log4Net1211/

http://www.nuget.org/packages/Common.Logging.Log4Net/

http://developer.3l.nl/post/16463925249/log4net-1-2-11-dependency-hell

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.