在构建输出的诊断视图中,显示了这种冲突。
"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 (x86)\Reference(任务:20)
我是通过添加RestSharp nuget包到达这里的。我没有问题,直到我安装了这个,我认为其中一个部分,它可能导致了这个问题。我试着卸载它,但那不起作用。
发布于 2019-07-26 07:19:48
根原因:当您在应用程序中引用某些第三方库时,通常会遇到这样的问题。
例如,您从RestSharp (第三方库)中获取了NuGet的引用。RestSharp可能使用了System.Net.Http
4.2.0.0
版本的引用。您的项目还引用了System.Net.Http
4.0.0.0
(来自GAC)。现在,当您运行应用程序时&尝试调用使用RestSharp__的任何方法,同时运行时(CLR)尝试使用version 4.2.0.0
定位System.Net.Http
程序集&当它无法找到所需的版本时,它将抛出System.IO.FileNotFoundException
异常,并在错误消息下面。
无法加载文件或程序集“System.Net.Http、Version=4.2.0.0、Culture=neutral、PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。系统找不到指定的文件。
在这里你可以看到运行时如何定位程序集
解决方案:只是在启动项目的web.config
或app.config
中添加下面的配置。
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
此配置指示运行时仅使用System.Net.Http
版本解析4.0.0.0
程序集,只要它在0.0.0.0
到4.2.0.0
之间查找此程序集的任何版本。
以下是完整的模式:
<configuration>
<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.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
https://stackoverflow.com/questions/47149345
复制相似问题