Found conflicts between System.Net.Http(发现 System.Net.Http 之间存在冲突)
问题描述
我的 VS 解决方案中有几个项目.每当我将System.Net.Http"NuGet 包添加到其中一个时,它都会显示为版本 4.2.0.0.然后我做同样的事情并添加相同的 NuGet 包,但是,另一个说版本.4.1.1.2
I have several projects in my VS solution. Whenever I add "System.Net.Http" NuGet package to one it shows as version 4.2.0.0. Then I do the same and add same NuGet Package, however, the other says version. 4.1.1.2
然后我收到警告:
发现 System.Net.Http 之间存在冲突
Found conflicts between System.Net.Http
Gathering dependency information took 1.7 sec
Attempting to resolve dependencies for package 'System.Net.Http.4.3.3' with DependencyBehavior 'Lowest'
Resolving dependency information took 0 ms
Resolving actions to install package 'System.Net.Http.4.3.3'
Resolved actions to install package 'System.Net.Http.4.3.3'
Retrieving package 'System.Net.Http 4.3.3' from 'nuget.org'.
Adding package 'System.Net.Http.4.3.3' to folder 'C:...Servicepackages'
Added package 'System.Net.Http.4.3.3' to folder 'C:...Servicepackages'
Added package 'System.Net.Http.4.3.3' to 'packages.config'
Successfully installed 'System.Net.Http 4.3.3' to ....Service
Executing nuget actions took 2.05 sec
Time Elapsed: 00:00:03.8937113
请注意安装了正确的版本,但是 => 道具 => 版本说 4.1.1.2
Please notice correct version installed, However => Props => Version says 4.1.1.2
推荐答案
这仅在使用 .NET Framework 时发生.在 .NET Core/Standard 领域,最新的 System.Net.Http 程序集版本似乎总是 4.1.2.0 - 没有可用的 4.2.0.0 版本.
This happens only when using .NET Framework. In .NET Core/Standard land, the latest System.Net.Http assembly version seems to be always 4.1.2.0 - there is no 4.2.0.0 version available.
关于 System.Net.Http 的问题是方式,方式比这里的答案似乎暗示的更复杂......
The issue regarding System.Net.Http is way, way more complicated then the answers here seem to imply...
- 是的,有一个
System.Net.HttpNuGet 包,但是不,它不会安装同一程序集的最新版本(它包含版本 4.1.System.Net.Http程序集的 1.2,而不是 4.2.0.0). - 最新的 Microsoft Visual Studio(或 Microsoft Visual Studio 构建工具)提供 4.2.0.0 版本,但这不意味着您的 .csproj 将始终使用它...
- 出于某种原因(我还无法理解),使用 4.2.0.0 的唯一保证方法是引用某些使用它的 NuGet 包,例如我们的
System.Buffers(版本4.5.0 对我有用).
- Yes, there is a
System.Net.HttpNuGet package, but no, it will not install the latest version of the same assembly (it contains version 4.1.1.2 of theSystem.Net.Httpassembly, not 4.2.0.0). - Latest Microsoft Visual Studio (or Microsoft Visual Studio Build Tools) provides version 4.2.0.0, but that does not mean your .csproj will always use it...
- For some reason (which I was not able to understand yet), the only guaranteed way of using 4.2.0.0 is by referencing certain NuGet packages that uses it, such us
System.Buffers(version 4.5.0 worked for me).
TL;DR:
添加 System.Buffers 4.5.0+ NuGet 引用到您的项目,如果您想确保它使用的是 System.Net.Http 4.2.0.0 程序集.
Add System.Buffers 4.5.0+ NuGet reference to your project, if you want to make sure it is using System.Net.Http 4.2.0.0 assembly.
参考资料:
- https://github.com/dotnet/corefx/issues/17522
- https://github.com/dotnet/corefx/issues/25773
- (https://github.com/dotnet/corefx/issues/22781-断开的链接)
- https://github.com/dotnet/corefx/issues/17522
- https://github.com/dotnet/corefx/issues/25773
- (https://github.com/dotnet/corefx/issues/22781 -broken link)
这篇关于发现 System.Net.Http 之间存在冲突的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:发现 System.Net.Http 之间存在冲突
- 输入按键事件处理程序 2022-01-01
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01
