System.IO.FileNotFoundException: 未能加载文件或程序集“System.Net.Http, Version=4.2.0.0, Culture=neutral 错误修正

19 4月

System.IO.FileNotFoundException: 未能加载文件或程序集“System.Net.Http, Version=4.2.0.0, Culture=neutral 错误修正

文章开始前,首先非常重要的是:

你系统是否安装了.net 4.72

如果没有安装,它将会尝试重定向到低版本 ,也就是导致了这个错误。

如果已经安装了.net4.72 那么继续向下看。

我开发是基于.net 4.61的,但是这个提示我缺少System.Net.Http, Version=4.2.0.0
而.net 4.61最高只有System.Net.Http, Version=4.0.0.0
就没法正常开发了,我把程序编译版本提升到4.7 依然提示这个问题。

System.IO.FileNotFoundException: 未能加载文件或程序集“System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。
文件名:“System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” ---> System.IO.FileNotFoundException: 未能加载文件或程序集“System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。
文件名:“System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”

我在这里搜到了相关的文章:https://stackoverflow.com/questions/47570912/strange-issue-with-system-net-http-4-2-0-0-not-found
她说我需要从packages.config迁移到PackageReference
在你的项目管理的地方,右键 引用 选项,就能看到这个。

这有个关键的回答:
您遇到的问题与Visual Studio有关,尤其是2017年随附的System.Net.Http v4.2.0.0。但是,采用新的方式,任何引用都应该通过NuGet完成,其最新版本System.Net.Http是4.3.3包含dll版本4.1.1.2。

问题是VS在构建时和运行时也将忽略您的引用,它将尝试引用它知道的DLL。

如何解决:

确保对System.Net.Http的任何引用都是通过NuGet完成的
构建时间错误:改变VS 2017(c:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\)附带的System.Net.Http.dll的扩展(或将其移动到其他地方……基本上摆脱它); 如果你有不同的版本,那么路径会略有不同,但并不多
运行时错误:添加程序集绑定重定向

在寻找针对此问题的一些永久性修复程序来处理构建代理时,请注意,如果迁移到新的NuGet PackageReference模型(.csproj不在其中packages.config)往往会更好地工作。以下是有关如何进行此升级的指南的链接:https//docs.microsoft.com/en-us/nuget/reference/migrate-packages-config-to-package-reference

发表评论

电子邮件地址不会被公开。 必填项已用*标注