在我的构建输出的诊断视图中显示了这种冲突
"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包来到这里.在我安装之前我没有遇到任何问题,我认为其中的一个部分可能导致了这个问题.我试图卸载它但是没有用.
Ger*_*ius 13
安装Nuget包:System.Net.Http版本4.3.3安装正确的版本= 4.1.1.2
这将导致项目文件中的以下引用:
<Reference Include="System.Net.Http, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\..\..\packages\System.Net.Http.4.3.3\lib\net46\System.Net.Http.dll</HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)
根本原因:当您在应用程序中引用某些第三方库时,通常会遇到此类问题。
例如,您从 NuGet 中引用了RestSharp(第三方库)。那个 RestSharp 可能使用了System.Net.Http
4.2.0.0
version的引用。您的项目也参考了System.Net.Http
4.0.0.0
(来自 GAC)。现在,当您运行应用程序并尝试调用任何使用RestSharp 的方法时,同时运行时 (CLR) 尝试System.Net.Http
使用版本定位程序集,4.2.0.0
当它无法定位所需版本时,它会抛出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>
Run Code Online (Sandbox Code Playgroud)
这种配置指示运行,以解决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>
Run Code Online (Sandbox Code Playgroud)
如果使用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文件夹中
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.1.1.2" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
从 4.6.1 框架升级到 4.7.2 后,我们开始收到此错误,最终解决方案是转到 web 配置文件,找到以下内容:
<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>
Run Code Online (Sandbox Code Playgroud)
并将其替换为
<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>
Run Code Online (Sandbox Code Playgroud)
上面所做的更改就是这样: newVersion="4.0.0.0"
我正在使用.NET Framework 4.7.2和Visual Studio 15.5。将System.Net.Http 4.3.3升级到4.3.4时,收到“无法加载”错误:
{“无法加载文件或程序集'System.Net.Http,版本= 4.2.0.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a”或其依赖项之一。系统找不到指定的文件。”:“ System.Net。 Http,版本= 4.2.0.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a“}
我过去了,只能得到FileNotFoundException:
System.IO.FileNotFoundException HResult = 0x80070002消息=无法加载文件或程序集'System.Net.Http,版本= 4.2.0.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。该系统找不到指定的文件。
GitHub上的.NET Core项目中的该线程讨论了此问题,我发现GitHub上的.NET Core项目中的这篇帖子非常有帮助:
https://github.com/dotnet/corefx/issues/25773#issuecomment-350036434
我的(糟糕的)摘要:Microsoft试图消除对System.Net.Http NuGet软件包的需求,因为它是解决其他发行问题的方法。.NET Framework 4.7.1和VS 15.5进行了更改(应该吗?),因此完全不需要使用它以及关联的绑定。
我从项目中删除了System.Net.Http NuGet程序包,并添加了对.NET Framework 4.7.2附带的System.Net.Http的引用,并且一切都恢复了正常。
归档时间: |
|
查看次数: |
14626 次 |
最近记录: |