【问题标题】:System.Net.Http version conflict causing build warningSystem.Net.Http 版本冲突导致构建警告
【发布时间】:2018-09-26 22:21:23
【问题描述】:

nuget 包 Microsoft.Net.Http.2.0.20710.0 导致我发出构建警告,因为它使用 System.Net.Http, Version=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.

【问题讨论】:

  • 我遇到了同样的问题。你找到解决方法了吗?我的印象是,当我添加所有新的 Web API 项目时,它得到了修复。但现在问题又回来了。
  • 不,还在发生。这是我的 CI 构建中唯一令人讨厌的警告。
  • 我实际上认为它甚至没有在我的项目中被引用。但是使用 Web API 会安装/卸载它。

标签: asp.net nuget


【解决方案1】:

您可以尝试this Microsoft Connect bugreport 中提到的解决方法。

或者您可以尝试在您的 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>

编辑:

这是 Connect Bug 中的解决方法:

修改.......:
阅读......:

【讨论】:

  • 我一直在寻找更好的答案或对您的答案的确认,自从我开始赏金以来,您收到的另外 4 个赞成票对我来说已经足够了。享受 +50。
  • 这也是错误的解决方案:无法解析主要引用 myASPWebsite.dll”,因为它间接依赖于框架程序集“System.Net.Http, Version=2.2.15.0 , Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 无法在当前目标框架中解决。".NETFramework,Version=v4.5"。要解决此问题,请删除引用 "myASPWebsite.dll" 或将您的应用程序重新定位到包含“System.Net.Http, Version=2.2.15.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的框架版本。
  • Microsoft 停用了 Connect,所有指向错误报告的链接现在都已损坏。上述解决方案不适用于 VS 2017 .NET 4.6.2
  • 在你的 Web.config 中,很酷,但是 Web.config
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-15
  • 1970-01-01
  • 2020-11-23
  • 1970-01-01
  • 1970-01-01
  • 2019-04-24
  • 2015-09-02
相关资源
最近更新 更多