web-dev-qa-db-ja.com

ファイルまたはアセンブリlog4netを読み込めませんでした

私が追加しました log4netを私のプロジェクトに追加すると、私のマシンでは問題なく機能しますが、私のアプリケーションのリリースバージョンを同僚に送信すると、彼はこれを受け取っていますFileNotFoundException

ファイルまたはアセンブリをロードできませんでした 'log4net、Version = 1.2.13.0、Culture = neutral、PublicKeyToken = 669e0ddf0bb1aa2a'

しかし、奇妙なことは私のapp.config上記のバージョンのlog4netも使用していません。

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="BizWizard.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
12
disasterkid

他のサードパーティライブラリを使用していますか?多分それらの1つは、log4netのこの特定のバージョンを必要とします。この場合は、アプリケーションのapp.configファイルでアセンブリバインディングを使用して解決できます。

<runtime>
  <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" />
      <codeBase version="1.2.13.0" href="log4netv1.2.13.0\log4net.dll" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

そして、これをlog4netの1.2.13.0バージョンをlog4netv1.2.13.0と呼ばれるサブフォルダに入れます

BindingRedirectを使用して、log4netへのすべての参照を特定の(自分の)バージョンにリダイレクトすることもできます。 http://msdn.Microsoft.com/en-us/library/7wd6ex19(v = vs.110).aspx

同じ問題に出くわした。 LinqToExcelライブラリは、異なるバージョンのlog4netを使用していました。

それを解決するには:

  • 参照で古いlog4netバージョンを削除します。

  • ツール、Nugetパケットマネージャー、パッケージマネージャーコンソールに移動します。

  • 実行:

インストールパッケージlog4net-バージョン2.0.3

詳細はこちら:

https://www.nuget.org/packages/log4net/2.0.

3
live-love