我需要将我的 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"解决了这个问题。
绝对是最好的解决方案。