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

.NET Framework 4.8中System.Buffers绑定重定向部分机器失效

问题描述

Bug详情

我们在.NET Framework 4.8解决方案中使用MessagePack。部分客户机器上的序列化功能出现异常,核心问题出在System.Buffers的加载上:System.Buffers.dll无法加载,原因是版本冲突——MessagePack依赖4.0.2.0版本,而另一个NuGet包依赖4.0.3.0版本的System.Buffers。但App.config中配置的BindingRedirect(绑定重定向)完全未生效。

实际现象

部分机器首次加载MessagePack.dll时抛出以下错误:

System.IO.FileLoadException: 无法加载文件或程序集“System.Buffers, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51”或其依赖项之一。找到的程序集清单定义与程序集引用不匹配。

  • 使用的MessagePack版本:2.5.108
  • 运行环境:.NET Framework 4.8

我们通过日志确认客户机器上的绑定重定向未生效,同时附上了正常机器、异常机器的日志以及App.config文件。

将客户机器的安装文件复制到本地后可正常运行;对比正常机器与异常机器的.NET Framework目录下的machine.config文件(路径:C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config),内容完全一致,可排除该文件导致问题的可能。

目前无法在本地复现该问题,已影响约5位客户,其中一位客户的全新Windows Server 2022环境也出现此问题,但我们本地的全新Server 2022环境无法复现。

预期结果

序列化功能应在所有机器上正常运行,System.Buffers 4.0.3.0版本能被正确加载,绑定重定向配置需生效。

附件内容

App.exe.config中的绑定重定向配置

...
<dependentAssembly>
        <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
...

Fuslog日志 - 正常机器

...
调用程序集: MessagePack, Version=2.5.0.0, Culture=neutral, PublicKeyToken=b4a0369545f0a1be.
===
日志: 绑定在默认加载上下文启动。
日志: 使用应用程序配置文件: C:\Users\afi\Desktop\customer data\Password Safe and Repository 8 Server\PSRServerAdmin.exe.config
日志: 未使用主机配置文件。
日志: 使用计算机配置文件: C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config
日志: 在应用程序配置文件中找到重定向规则,将4.0.2.0版本重定向到4.0.3.0版本。
日志: 应用策略后的引用: System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
...

Fuslog日志 - 客户机器(异常)

...
调用程序集: MessagePack, Version=2.5.0.0, Culture=neutral, PublicKeyToken=b4a0369545f0a1be.
===
日志: 绑定在默认加载上下文启动。
日志: 使用应用程序配置文件: C:\Program Files\Password Safe and Repository 8 Server\PSRServerAdmin.exe.config
日志: 未使用主机配置文件。
日志: 使用计算机配置文件: C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config
日志: 应用策略后的引用: System.Buffers, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51

...

操作失败。
绑定结果: hr = 0x80131040. 无可用描述。

...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:19:53