无法加载文件或程序集’System.Net.Http

在我的构建输出的诊断视图中显示了这种冲突

“System.Net.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”和“System.Net.Http,Version = 4.1.1.2,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”之间存在冲突。 (TaskId:20)选择“System.Net.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”,因为它是主要的,“System.Net.Http,Version = 4.1.1.2,Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a“不是。 (TaskId:20)依赖于“System.Net.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”[C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4的引用] .6.1 \ System.Net.Http.dll。 (TASKID:20)

我通过添加RestSharp nuget包来到这里。 在我安装之前我没有遇到任何问题,我认为其中的一个部分可能导致了这个问题。 我试图卸载它但是没有用。

安装Nuget包:System.Net.Http版本4.3.3安装正确的版本= 4.1.1.2

这将导致项目文件中的以下引用:

 ..\..\..\..\packages\System.Net.Http.4.3.3\lib\net46\System.Net.Http.dll  

如果您使用vs2017,某些项目将强制您引用system.net.http(4.2.0.0)当您从nuget(版本4.3.3)安装时,您的system.net.http将是4.1.1.2

– >会有冲突

因此,在您的web.config或app.config中, 您可以更改为4.1.1.2或4.2.0.0,具体取决于在运行时将哪个版本复制到bin文件夹

     

我正在使用.NET Framework 4.7.2Visual Studio 15.5 。 当我将System.Net.Http 4.3.3升级到4.3.4时 ,我收到了“无法加载”错误:

{“无法加载文件或程序集’System.Net.Http,Version = 4.2.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a’或其依赖项之一。系统找不到指定的文件。”:“System.Net。 Http,Version = 4.2.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a“}

我过去只是为了得到一个FileNotFoundException

System.IO.FileNotFoundException HResult = 0x80070002消息=无法加载文件或程序集’System.Net.Http,Version = 4.2.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a’或其依赖项之一。 该系统找不到指定的文件。

GitHub上的.NET Core项目中的这个线程讨论了这个问题,我在GitHub上的.NET Core项目中发现这篇文章非常有帮助:

https://github.com/dotnet/corefx/issues/25773#issuecomment-350036434

我的(糟糕的)总结:微软正试图消除对System.Net.Http NuGet包的需求,因为它是其他发布问题的解决方法。 .NET Framework 4.7.1VS 15.5的更改(应该?)完全消除了对它和相关绑定的需要。

我从我的项目中删除了System.Net.Http NuGet包,并添加了对.NET Framework 4.7.2中包含的System.Net.Http的引用,并且所有内容都再次出货。