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

.NET Standard更新后System.Net.Http程序集引用不匹配问题求助

解决System.Net.Http程序集加载不匹配的问题

这个问题在.NET Framework项目引入.NET Standard类库时特别常见,主要是因为System.Net.Http在不同框架环境下的版本管理容易出现冲突。结合你的配置信息,给你几个针对性的解决步骤:

1. 修正Web.config中的绑定重定向

首先检查你的Web.config里的System.Net.Http绑定重定向是否和NuGet包版本(4.3.3)一致。很多时候项目自动生成的重定向版本会和实际安装的包不匹配,导致清单定义冲突。你需要确保配置是这样的:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <!-- 其他绑定重定向 -->
    <dependentAssembly>
      <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.3.3.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

这里newVersion要严格对应你package.config里的4.3.3版本,oldVersion覆盖到可能存在的旧版本范围。

2. 避免程序集引用冲突

有时候项目会同时引用GAC(全局程序集缓存)里的System.Net.Http和NuGet安装的版本,这会导致加载混乱:

  • 右键你的Web项目 → 管理NuGet程序包,确认System.Net.Http确实是4.3.3版本且已正确安装;
  • 转到项目的“引用”节点,找到System.Net.Http:
    • 如果它的“路径”指向系统目录(比如C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Net.Http.dll),说明你引用了系统自带的版本,需要移除它,只保留NuGet安装的引用;
    • 如果是NuGet引用,确保它的“复制本地”属性设置为True,这样编译时会把正确版本的dll复制到输出目录。

3. 清理并重新生成项目

缓存的旧程序集也可能导致问题,按以下步骤操作:

  • 右键解决方案 → 清理解决方案;
  • 手动删除项目根目录下的bin和obj文件夹;
  • 重新生成整个解决方案。

完成这些步骤后,应该就能解决程序集清单不匹配的问题了。

内容的提问来源于stack exchange,提问作者Benjamin E.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:34:20