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

基于.NET Framework4.8的WinForms应用System.Memory加载失败求助

解决.NET Framework 4.8下System.Memory版本冲突问题

问题根源

Npgsql 7.0.4依赖的System.Memory版本和项目中已安装的4.5.5.0存在绑定冲突,.NET Framework的程序集绑定重定向配置未正确生效,导致运行时尝试加载旧版本(4.0.1.1),引发匹配失败的异常。

解决步骤

1. 配置程序集绑定重定向

在项目的App.config里添加或更新System.Memory的绑定重定向,强制运行时使用4.5.5.0版本:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.5.5.0" newVersion="4.5.5.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

如果已有<assemblyBinding>节点,直接把<dependentAssembly>段加进去就行。

2. 清理缓存并重新还原NuGet包

  • 打开VS的工具→NuGet包管理器→包管理器设置,在常规里点击清除所有NuGet缓存。
  • 右键项目→管理NuGet程序包,点击还原,确保所有依赖包正确下载。

3. 确认项目引用的System.Memory版本

  • 右键项目→引用,找到System.Memory,检查版本是否为4.5.5.0。
  • 若版本不对,右键该引用→属性,把特定版本设为True,并确认程序集路径指向NuGet包目录下的正确文件。

4. 调整Npgsql版本(可选)

Npgsql 7.x对.NET Framework的兼容性不如6.x系列,如果不是必须用7.0.4,可以卸载后安装Npgsql 6.x稳定版本,能减少版本冲突概率。

5. 清理输出目录并重新生成

手动删除项目的bin和obj文件夹,然后在VS里点击生成→重新生成解决方案,确保编译输出都是最新的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 04:55:06