未找到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方法的主要内容,如果未能解决你的问题,请参考以下文章

NetCore 3.1 项目搭建反射依赖注入,Swagger结合Jwt,sqlSugar+EfCore异常中间件+Log4Net+MongoDb,Redis+Docker,丰富的公共类库,代码示例 下

Asp.Net Core 3.1 控制器方法未调用

NetCore 使用Log4Net

NetCore 使用Log4Net

VS2017-NetCore项目整合Log4Net

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