升级到 .NET Framework 4.8 时的程序集绑定问题



我需要将我的 WebApi2 项目从 4.7.1 升级到 4.8,所以我做了以下操作:

  • 在"属性"选项卡中将Target Framework更改为 4.8
  • packages.config中将"targetFramework="net471"更改为"targetFramework=net48"
  • 删除了 bin 和 obj 文件夹,然后做了一个nuget restore
  • 已检查ReferencesAssemblies下的所有引用文件是否都指向 SDKv4.8文件夹
  • 重新构建解决方案

然后我在web.config中更改了以下内容:

<system.web>
<compilation debug="true" targetFramework="4.8"/>
<httpRuntime targetFramework="4.8"/>
</system.web>

但是,我在运行项目时出现异常:

无法加载文件或程序集"System.Net.Http,版本=4.0.0.0,区域性=中性,公钥令牌=b03f5f7f11d50a3a"或其依赖项之一。系统找不到指定的文件。 说明:执行当前 Web 请求期间发生未经处理的异常。请查看堆栈跟踪,了解有关错误及其在代码中起源位置的详细信息。

异常详细信息:System.IO.FileNotFoundException:无法加载文件或程序集"System.Net.Http,版本=4.0.0.0,区域性=中性,公钥令牌=b03f5f7f11d50a3a"或其依赖项之一。系统找不到指定的文件。

web.config中的相应部分是:

<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="B03F5F7F11D50A3A" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0"/>
</dependentAssembly>

该项目是更大解决方案的一部分,它引用了面向netstandard2.0的项目。然而,这不是问题,因为当仍在使用4.7.1时一切都在工作

我还需要检查/更改什么才能使用v4.8进行项目?

按照@Igor注释引用的步骤,无法加载文件或程序集"System.Net.Http,版本=4.0.0.0,文化=中立,PublicKeyToken=b03f5f7f11d50a3a"解决了这个问题。

绝对是最好的解决方案。

最新更新