web-dev-qa-db-ja.com

ファイルまたはアセンブリ「log4net、Version = 2.0.8.0、Culture = neutral、PublicKeyToken = 1b44e1d426115821」またはその依存関係の1つをロードできませんでした

この問題に関連するスレッドをいくつか見つけましたが、どれも私の問題を解決しませんでした。

以前、log4net version 1.2.10.0サービスでASP.NETを使用していました。いくつかのサードパーティのライブラリのために、log4net v2.0.8.0である現在のバージョンに更新しました。古いバージョンをサポート/リダイレクトするためにweb.configに次の行も追加しました。

<runtime>    
    <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">      
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
      </dependentAssembly>      
      <dependentAssembly>
       <assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-1.2.10.0" newVersion="2.0.8.0" />      
      </dependentAssembly>    
    </assemblyBinding>
</runtime>

また、これらのメッセージで混乱しています内部例外:((System.IO.FileLoadException)ex.InnerException.InnerException).Message

ファイルまたはアセンブリ 'log4net、Version = 1.2.10.、Culture = neutral、PublicKeyToken = 1b44e1d426115821'またはその依存関係の1つをロードできませんでした。見つかったアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)

例外メッセージ:

ファイルまたはアセンブリ 'log4net、Version = 2.0.8.、Culture = neutral、PublicKeyToken = 1b44e1d426115821'またはその依存関係の1つをロードできませんでした。見つかったアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)

おそらくFusionLogの問題を指す以下の行

WRN:アセンブリ名を比較すると、不一致が発生しました:パブリックキートークンエラー:アセンブリのセットアップの完了に失敗しました(hr = 0x80131040)。プローブが終了しました

完全なFusionLog

===事前バインド状態情報=== LOG:DisplayName = log4net、Version = 1.2.10.0、Culture = neutral、PublicKeyToken = 1b44e1d426115821(完全指定)LOG:Appbase = file:/// F:/ Cab Management System/CMS-Localized/CMS-Code/WebServices/CMSAPI/LOG:Initial PrivatePath = F:\ Cab Management System\CMS-Localized\CMS-Code\WebServices\CMSAPI\bin Calling Assembly:Paypal_base、Version = 4.4.55.0、Culture =中立、PublicKeyToken = b37401294aaf5617。 === LOG:このバインドはデフォルトのロードコンテキストで開始します。ログ:アプリケーション構成ファイルを使用:F:\ Cab Management System\CMS-Localized\CMS-Code\WebServices\CMSAPI\web.configログ:ホスト構成ファイルを使用:C:\ Users\Dell\Documents\IISExpress\config\aspnet .configログ:C:\ Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.configのマシン構成ファイルを使用します。ログ:リダイレクトがアプリケーション構成ファイルで見つかりました:2.0.8.0にリダイレクトされた1.2.10.。ログ:ポストポリシーリファレンス:log4net、バージョン= 2.0.8.0、カルチャー=ニュートラル、PublicKeyToken = 1b44e1d426115821ログ:新しいURLファイルのダウンロードを試みています:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/864fb64d/ad78f51e/log4net.DLLログ:新しいURL file:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/864fb64d/ad78f51e/log4net/log4net.DLLのダウンロードを試行しています。ログ:新しいURL file:/// F:/ Cab Management System/CMS-Localized/CMS-Code/WebServices/CMSAPI/bin/log4net.DLLのダウンロードを試行しています。 WRN:アセンブリ名を比較すると、不一致が発生しました:パブリックキートークンエラー:アセンブリのセットアップの完了に失敗しました(hr = 0x80131040)。プローブが終了しました。

提案

両方の.dllを/ binフォルダーに入れる必要がありますか、

スタックトレース

com.Paypal.sdk.profiles.BaseAPIProfile..ctor()at com.Paypal.sdk.profiles.ProfileFactory.createSignatureAPIProfile()
P:PayPalLibrary.PayPalPayment.SetPaymentProfile(String rsUserName、String rsPassword、String rsSignature、String rsEnviroment、String rsIpAddress)at F:\ path\Classes\PayPalPayment.cs:line 34 at API.ServiceBLL.DoCreditCardPOnment(String txt 、String ddlExpiryMonth、String ddlExpiryYear、String txtCardNo、String txtCv2、String amount、String&paymentServiceType)F:\ Path\ServiceBLL.cs:line 2907

更新

コメントでCiprian Lipanが提案された後、.csprojでこのエントリを見つけました。PublicKeyTokenweb.configとは異なります。内なる例外はなくなった。以下は.csprojのエントリです

<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
      <HintPath>packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
      <Private>True</Private>
</Reference>

例外

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)

ただし、構成内のトークンを.csprojにある新しいトークンに変更しました

FusionLog

===事前バインド状態情報=== LOG:DisplayName = log4net、Version = 1.2.10.0、Culture = neutral、PublicKeyToken = 1b44e1d426115821(完全指定)LOG:Appbase = file:/// F:/ Path/API/LOG:Initial PrivatePath = F:\ path\API\bin Calling Assembly:Paypal_base、Version = 4.4.55.0、Culture = neutral、PublicKeyToken = b37401294aaf5617。 === LOG:このバインドはデフォルトのロードコンテキストで開始します。ログ:アプリケーション構成ファイルを使用:F:\ path\API\web.configログ:ホスト構成ファイルを使用:C:\ Users\me\Documents\IISExpress\config\aspnet.configログ:C:\のマシン構成ファイルを使用Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.configログ:ポストポリシーリファレンス:log4net、バージョン= 1.2.10.0、Culture = neutral、PublicKeyToken = 1b44e1d426115821ログ:新しいURLファイルのダウンロードを試みています:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/864fb64d/ad78f51e/log4net.DLLログ:新しいURL file:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/vs/864fb64d/ad78f51e/log4net/log4net.DLLのダウンロードを試行しています。ログ:新しいURL file:/// F:/path/API/bin/log4net.DLLのダウンロードを試行しています。 WRN:アセンブリ名の比較の結果、不一致:メジャーバージョン ERR:アセンブリのセットアップの完了に失敗しました(hr = 0x80131040)。プローブが終了しました。

12
trighati

Apacheはarg!の公開鍵を変更することにしました! 同様の投稿 に解決策があります。

または、古い公開キートークンを使用して、古い1.2.10.0バージョンへの参照を元に戻すこともできます。 nuget log4net 1.2.10.

5
TwistedStem