System.Net.Http版本冲突导致构建警告

Nik*_*nte 32 asp.net nuget

nuget包Microsoft.Net.Http.2.0.20710.0由于使用了System.Net.Http,版本= 2.0.0.0,它正在与另一个包中的版本4作斗争,因此导致我发生构建警告.

围绕这个最好的方法是什么?Microsoft.Net.Http.2.0.20710.0软件包是否已过时,我是否应该在我的项目中手动引用System.Net.Http,Version = 4.0.0.0?

构建输出是:

  There was a conflict between "System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" and "System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
      "System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was chosen because it was primary and "System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" was not.
      References which depend on "System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [C:\Working\MyProject\packages\Microsoft.Net.Http.2.0.20710.0\lib\net40\System.Net.Http.dll].
          C:\Working\MyProject\packages\Microsoft.Net.Http.2.0.20710.0\lib\net40\System.Net.Http.dll
            Project file item includes which caused reference "C:\Working\MyProject\packages\Microsoft.Net.Http.2.0.20710.0\lib\net40\System.Net.Http.dll".
              System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL
      References which depend on "System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" [C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Net.Http.dll].
          C:\Working\MyProject\packages\Microsoft.AspNet.WebApi.Core.4.0.20710.0\lib\net40\System.Web.Http.dll
            Project file item includes which caused reference "C:\Working\MyProject\packages\Microsoft.AspNet.WebApi.Core.4.0.20710.0\lib\net40\System.Web.Http.dll".
              System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL
              System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL
          C:\Working\MyProject\packages\Microsoft.AspNet.WebApi.Client.4.0.20710.0\lib\net40\System.Net.Http.Formatting.dll
            Project file item includes which caused reference "C:\Working\MyProject\packages\Microsoft.AspNet.WebApi.Client.4.0.20710.0\lib\net40\System.Net.Http.Formatting.dll".
              System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL
              System.Net.Http.Formatting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL
              System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL
          C:\Working\MyProject\packages\Microsoft.AspNet.WebApi.WebHost.4.0.20710.0\lib\net40\System.Web.Http.WebHost.dll
            Project file item includes which caused reference "C:\Working\MyProject\packages\Microsoft.AspNet.WebApi.WebHost.4.0.20710.0\lib\net40\System.Web.Http.WebHost.dll".
              System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1578,5): warning MSB3247: Found conflicts between different versions of the same dependent assembly.
Run Code Online (Sandbox Code Playgroud)

mwi*_*nds 31

您可以尝试此Microsoft Connect错误报告中提到的解决方法.

或者你可以尝试在Web.config中添加这样的东西:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
Run Code Online (Sandbox Code Playgroud)

编辑:

这是Connect Bug中的解决方法:

修改.......:<参考Include ="System.Net.Http">
读取......:<参考Include ="System.Net.Http,Version = 4.0.0.0">

  • 微软退休Connect,所有错误报告的链接现已破裂.上述解决方案在VS 2017 .NET 4.6.2中不起作用 (7认同)