You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 4.8升级Serilog至4.0后遇程序集加载错误求助

Serilog 4.0升级至.NET 4.8后程序集加载错误的解决思路

你遇到的Could not load file or assembly 'Serilog, Version=2.0.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10' or one of its dependencies.错误并非Serilog 4.0的Bug,核心原因是依赖版本不兼容或缺少程序集绑定重定向,以下是具体解决步骤:

  • 同步升级所有Serilog相关依赖包
    项目中如果使用了Serilog的衍生组件(如Serilog.Sinks.Console、Serilog.Enrichers.Thread等),旧版本的这类组件可能硬依赖Serilog 2.x版本,导致加载冲突。需将所有Serilog家族的NuGet包升级到兼容4.0的版本。

  • 添加程序集绑定重定向
    在项目的App.config(桌面应用)或Web.config(Web应用)的runtime/assemblyBinding节点下添加重定向配置,强制应用使用4.0版本的Serilog程序集:

    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Serilog" publicKeyToken="24c2f752a8e58a10" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    
  • 清理项目并重建
    删除项目目录下的bin和obj文件夹,清理NuGet本地缓存,然后重新编译项目,避免残留的旧版本程序集引发冲突。

  • 排查间接依赖
    使用NuGet包管理器的“查看依赖项”功能,或执行dotnet list package --include-transitive命令(若使用.NET CLI),检查是否有第三方包间接引用了旧版Serilog,找到后升级对应包或联系包作者更新依赖。

Serilog 4.0官方支持.NET Framework 4.6.2及以上版本(包含4.8),只要确保整个依赖链版本兼容,即可正常使用,无需一直停留在3.1.1版本。

内容的提问来源于stack exchange,提问作者Evald80

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 19:55:58