.NET 8升级后Serilog.Sinks.AwsCloudWatch抛出TypeLoadException问题
问题原因与解决方案
原因分析
- 本质是Serilog版本升级后与旧版
Serilog.Sinks.AwsCloudWatch的兼容性冲突 - Serilog 3.1.1对日志Sink的核心基类进行了修改,将原本允许继承的类标记为
sealed(密封类) - 你当前使用的
Serilog.Sinks.AwsCloudWatch 4.0.182是基于Serilog 3.0.1开发的,它的CloudWatchLogSink类继承了Serilog中现在被标记为密封的父类,运行时CLR检测到继承密封类的非法操作,因此抛出TypeLoadException
解决办法
- 优先方案:升级
Serilog.Sinks.AwsCloudWatch到适配Serilog 3.1.1的最新版本。该Sink的后续版本已经修复了与Serilog 3.x新版本的兼容性问题,更新后即可解决继承冲突 - 临时降级方案:若暂时无法升级Sink,可将Serilog版本降级回3.0.1,恢复与旧版Sink的兼容性,但不建议长期使用,避免错过Serilog的功能更新和修复
内容的提问来源于stack exchange,提问作者Witted
相关产品推荐
相关产品推荐

