web-dev-qa-db-ja.com

ファイルまたはアセンブリ「log4net、バージョン= 1.2.10.0、Culture = neutral、PublicKeyToken = 1b44e1d426115821」をロードできませんでした

NuGet Package Managerを使用してプロジェクトにLog4Netを追加しましたが、システムにインストールされているバージョン2.3が表示されています。

ここに私の設定エントリがあります:

  <configSections>
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

そして、このファイルへの参照はこちら

  <log4net configSource="Log4Net.config" />
  <system.serviceModel>

しかし、私がウェブサイトを実行するとき。次の例外が表示されます。

Could not load file or Assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' or one of its dependencies. The located Assembly's manifest definition does not match the Assembly reference. (Exception from HRESULT: 0x80131040)

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.IO.FileLoadException: Could not load file or Assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' or one of its dependencies. The located Assembly's manifest definition does not match the Assembly reference. (Exception from HRESULT: 0x80131040)

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the Origin and location of the exception can be identified using the exception stack trace below.

Binフォルダーにdllが存在するのを見ましたが、代わりにバージョン1.2.13.0を表示しています。

アセンブリのバージョンを変更するにはどうすればよいですか?

17
Naveed Butt

ソリューション内のプロジェクトの1つまたはサードパーティのdllが異なるバージョンのlog4netでビルドされているようです。すべてのプロジェクトでlog4netへの参照を更新します(サードパーティのdllではこれは役に立ちません)、またはlog4netの指定されたバージョン/バージョンを新しいものにリダイレクトするアセンブリリダイレクト設定をweb.config(app.config)に追加できます。

このセクションをweb.config(app.config)の構成要素の下の任意の場所に配置します

<runtime>
    <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="log4net"
                          publicKeyToken="1b44e1d426115821"
                          culture="neutral" />
            <bindingRedirect oldVersion="1.2.10.0"
                         newVersion="1.2.13.0"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>

詳細については、 msdnのドキュメントページ を参照してください。

15
pepo