我最近将一个.NET6项目更新到.NET8,并将所有包更新到最新版本.

但是,在运行应用程序时,当try 加载记录器时,我遇到了以下错误

System.TypeLoadException:由于父类型已密封,因此无法从程序集中加载类型‘Serilog.Sinks.AwsCloudWatch.CloudWatchLogSink’.Serilog.Sinks.AwsCloudWatch,Version=4.0.182.0,区域性=中性,PublicKeyToken=23b095b16108dcf5.

在此发生:

 var logger = new LoggerConfiguration()
     .WriteTo.AmazonCloudWatch(options, client);

"Serilog.Sinks.AwsCloudWatch"的版本是"4.0.182"(这在更新中没有改变)

"Serilog"的版本从"3.0.1"到"3.1.1"

如果你知道是什么引起的,一定要让我知道! 首先要感谢大家!

推荐答案

无法用3.1.1版本的Serilog重现该错误,请判断是否显式安装了Serilog.Sinks.PeriodicBatching Nuget、since v4.0.0 PeriodicBatchingSink(CloudWatchLogSink的基类)是否密封.

如果显式安装的包-将其降级(例如,降级到3.1.0),如果不是-显式安装早期版本(可能需要降级依赖于此的其他包).

Csharp相关问答推荐

Unity如何在PlayerPrefs中保存数据?

ASP.NET MVC购物车数量更新并从购物车中删除项目

在Linq中调用需要limit和offset的方法''''

如何从泛型方法返回一个可为空的T,其中T:notnull?

为什么这个Reflection. Emit代码会导致一个DDL ViolationException?

Int和uint相乘得到LONG?

mocking对象的引发事件并作为用于调用方法的参数对象传递到那里

如何使用新的Microsoft.IdentityModel.JsonWebToken创建JwtSecurityToken?

使用可信第三方的Iext8.Net pdf签名

如何使用C#获取FireStore中的列表输出文档

如何将MongoDB序列化程序设置为内部对象属性

每个http请求需要60秒,为什么?

在被Interactive Server切换后,Blazor SSR页面无法正确加载JS

记录类型';==运算符是否与实现IEquatable<;T&>;的类中的';equals&>方法执行等价比较?

为值对象编写自定义JsonConverter

映射器-如何映射到多个实体

使用C#代码和SQL SERVER中的相同证书签名会产生不同的结果

在.Net 8 Visual Studio 2022中启用本机AOT发布时发布失败

在使用.NET EF Core DbContext属性之前,是否应使用null判断

部署Aspnet Blazor服务器时出现未处理的Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]异常