发现 System.Net.Http 冲突问题

58

我的VS解决方案中有几个项目。每当我向其中一个添加"System.Net.Http" NuGet包时,它显示为版本4.2.0.0。然后我做同样的事情,添加相同的NuGet包,但是另一个却显示版本4.1.1.2。

输入图像描述 输入图像描述

然后我收到一个警告:

发现System.Net.Http之间存在冲突

编辑1:

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:\...Service\packages'
Added package 'System.Net.Http.4.3.3' to folder 'C:\...Service\packages'
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
请注意图片中展示的内容:enter image description here

是的,所有的都是4.6.1。 - ShaneKm
你的项目中可能有依赖于4.1.1.2版本的内容,因此Nuget会拉取该版本。最坏的情况是,你可以使用“-Version”命令行选项在另一个项目中安装4.1.1.2版本。 - Charleh
2
我卸载了所有的NuGet包,并从其他项目中删除了所有引用。然后重新添加了System.Net.Http NuGet。但仍然显示4.1.1.2。 - ShaneKm
2
我注意到这种情况发生在创建新的服务布局Stateful项目时。目标框架为4.6.1。当您向该项目添加“System.net.http”NuGet时,它将引用.net.http ver 4.1.1.2。但是,当您添加一个新的类库,针对相同的.net frawork(4.6.1),并执行添加相同NuGet包(System.Net.Http)的相同步骤时。它将引用ver 4.2.0.0。不确定如何解决此问题。 - ShaneKm
显示剩余2条评论
11个回答

-2

我正在使用.NET 4.6.2,并发现了同样的问题。我有两个项目,一个是网站,另一个是测试项目。我查看了以下内容:

  • 两个项目都安装了System.Net.Http的NuGet包

  • 两个程序中的引用相等,并且都指向相同的包

问题在于,项目的Web.Config和App.Config指向不同的System.NET.Http。

我替换了两个配置文件中的代码,得到了:

<dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.1.1.3" newVersion="4.1.1.3" />
  </dependentAssembly>

在它们两个中都加上。然后冲突就消失了。


这个.config文件的更改已经在2年前的这个答案底部描述过了。 - Lance U. Matthews

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接