10

LinqToExcel ライブラリを使用するプロジェクトをビルドしようとしています。さらに、log4net を使用してログを書き込んでいます。

私の問題は、次のコード行を実行しようとしたときに始まりました。

var excel = new ExcelQueryFactory(ExcelPath);
return (from r in excel.Worksheet<RowDetails>(company.Name)
        select r).Count();

この行は例外をスローしました:

エラー MyProj.Program Main:System.IO.FileLoadException: ファイルまたはアセンブリ 'log4net、Version=1.2.11.0、Culture=neutral、PublicKeyToken=669e0ddf0bb1aa2a' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040) ファイル名: 'log4net、バージョン = 1.2.11.0、カルチャ = ニュートラル、PublicKeyToken = 669e0ddf0bb1aa2a'

この行の前で log4net を使用することに成功していることに注意することが重要です。

助けていただければ幸いです。

どうもありがとうございます!

4

4 に答える 4

7

marc_s が指摘したように、この問題は通常、同じアセンブリの異なるバージョンを読み込もうとしたときに発生します。プロジェクトが、log4net にも依存する LinqToExcel ライブラリと同じアセンブリ バージョンを使用していることを確認してください。また、他のライブラリも同じアセンブリ バージョンを使用する必要があります。この問題を解決するには、次のように app.config でアセンブリ リダイレクトを使用することもできます。

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
        <bindingRedirect oldVersion="1.2.10.0" newVersion="1.2.11.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
于 2012-05-29T12:48:58.227 に答える
1

私は同様の問題を抱えています。問題は、Log4Net バージョン 1.2.11 を参照する LinqtoExcel にあると思います。Log4Net を個別に参照し、最新の 1.2.13 バージョンを取得します。ビルド出力では 1.2.13 になり、LintoExcel が Log4Net を呼び出すと、1.2.11 が予期され、エラーが発生します。

于 2014-07-11T14:23:32.643 に答える
0

NuGet を使用して log4net をアップグレードした後にこの問題が発生しましたが、新しいバージョンが別のキーで署名されていることがわかりました。

apache log4net サイトから「oldkey」バージョンを取得すると、うまくいきました。

于 2016-05-09T08:39:27.147 に答える