【问题标题】:Error with Log4Net : "Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies"Log4Net 错误:“无法加载文件或程序集'log4net,版本 = 1.2.10.0,文化 = 中性,PublicKeyToken = null'或其依赖项之一”
【发布时间】:2014-06-06 09:45:10
【问题描述】:

在尝试运行供应商提供的用于试用 API 的 MVC 示例时,我收到以下错误:

[StructureMapConfigurationException:StructureMap 配置 失败:错误:170 来源:注册表: StructureMap.Configuration.DSL.Registry, StructureMap, 版本=2.6.3.0,文化=中性,PublicKeyToken=e60ad81abae3c223 在程序集中找不到导出的类型 Groupdocs.Web.UI.Comparison,版本=2.0.5205.21794,文化=中性, PublicKeyToken=c9073b8a6a9c78c8。大会的一项或多项 可能缺少依赖项。

无法加载文件或程序集'log4net,版本=1.2.10.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。一种 强命名程序集是必需的。 (HRESULT 的例外情况: 0x80131044) System.IO.FileLoadException: 无法加载文件或 程序集'log4net,版本=1.2.10.0,文化=中性, PublicKeyToken=null' 或其依赖项之一。一个名副其实的 组装是必需的。 (HRESULT 异常:0x80131044)文件名: 'log4net,版本=1.2.10.0,文化=中性,PublicKeyToken=null'
在 System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly 程序集,ObjectHandleOnStack retTypes)在 System.Reflection.RuntimeAssembly.GetExportedTypes() 在 StructureMap.Graph.TypePool.c__DisplayClass2.<.ctor>b__0(Assembly 组装)

似乎专门与 Log4net 相关,但我得到了项目和版本 (1.2.10) 的正确参考,有趣的是,当我在另一台机器上尝试相同的项目时,它可以正常工作,所以不确定实际问题是什么。 我检查了 GAC,没有 log4net 引用。

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-mvc-4 log4net


    【解决方案1】:

    错误提示:“需要强命名程序集

    我认为您应该向您使用的 log4net 添加一个强命名密钥,或者从您的应用程序中删除一个强命名密钥。

    【讨论】:

    【解决方案2】:

    该行的某处必须有一个引用旧版本 log4net 的 DLL。你无法想象我们在我们的项目中经常遇到这些类似的问题。解决方案就是找到所有依赖 log4net 的项目并升级它们的版本。 log4net 的最新版本是 1.2.13。您的应用程序中的某处必须有一个 DLL,它仍然依赖于旧版本,在您的情况下是 1.2.10。 更新包-Id log4net

    原始而方便的解决方案:

    1 - 构建整个解决方案并确保项目成功编译和构建。

    2 - 在解决方案文件夹中搜索所有 log4net.dll 实例(在 Visual Studio 中右键单击解决方案并“在文件资源管理器中打开文件夹”)

    3 - 在您的情况下,您很可能会在项目 bin 文件夹中看到同一 DLL 的不同版本。比较这些 DLL 将引导您找到与解决方案的其余部分不同的 DLL。

    【讨论】:

    • 我遇到与上述相同的错误,但我的项目都没有使用 log4net。那么如何找出我引用的哪些第三方库使用 log4net 呢?
    【解决方案3】:

    在您的配置中,您没有指定公钥令牌,请检查您的配置是否包含:

    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net,
                                Version=1.2.10.0, Culture=neutral, PublicKeyToken=1B44E1D426115821"/>
    

    这将通过其强名称加载 log4net 程序集。

    【讨论】:

      猜你喜欢
      • 2016-08-05
      • 2015-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多