未找到log4net .netcore 3.1方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未找到log4net .netcore 3.1方法相关的知识,希望对你有一定的参考价值。

背景:这是一个.netcore 3.1 Web API。它引用一个DLL,该DLL引用一个SDK来创建到第三方应用程序的连接。在DLL中创建服务器对象时,它将引发以下错误:

error message

 .net core app
      - DLL containing legacy methods
           - DLL instantiates an SDK server object throwing log4net error

我添加了Microsoft.Extensions.Logging.Log4Net.AspNetCore nuget包,并尝试了logger的工厂方式:

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
    
        loggerFactory.AddLog4Net();

我也尝试过:https://stackify.com/making-log4net-net-core-work/

我在解决方案中也有一个log4net.config。关于如何解决该错误的任何建议?

enter image description here

答案
没有足够的信息知道这是否在咬你,但这听起来可能是相关的。

如果您的依赖项依赖于具有旧公共密钥令牌的旧版本的log4net,但是您解析了新版本的log4net(因为您的项目直接引用了它,或者您的其他依赖项之一这样做了),则可以获取每当针对旧log4net编译的代码调用其方法之一时,程序集将在运行时加载程序集异常或缺少方法异常。

This is because the type names contain the public key token.

对此的一般解决方法是确保依赖性树中只有log4net的单个版本(或至少具有相同公共密钥令牌的所有版本)。

以上是关于未找到log4net .netcore 3.1方法的主要内容,如果未能解决你的问题,请参考以下文章

在 .Net Core 3.1 上发布时未使用新 ViewModel 重新加载表单

Json 对象 Asp.net Core 3.1 的最大长度

Azure AD 在 .NET Core 3.1 中未进行身份验证

.NetCore 3.1API 无法加载文件或程序集“Microsoft.AspNetCore.Hosting.Abstractions”

未找到框架 .NETCore,Version=v5.0 的参考程序集

未找到 Microsoft.NetCore.App 或 Microsoft.AspNetCore.App 的指定版本