【问题标题】:How to get 'System.Web.Http, Version=5.2.3.0?如何获得'System.Web.Http,版本 = 5.2.3.0?
【发布时间】:2015-04-20 16:14:25
【问题描述】:

我刚刚创建了一个 MVC5 项目并从 nuget 添加了几个包,但是当我编译该项目时,我得到了这个错误。似乎其中一个包确实依赖于 system.web.http 版本 5.2.3.0,我在任何地方都找不到。我只是想知道如何获取最新版本的 system.web.http ?

错误 2 程序集 'System.Web.Http.WebHost, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 使用 'System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'比引用的程序集 'System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
d:\Backup 2014-12-25\Website-Projects\www.ptsol.com 更高的版本。 au\packages\Microsoft.AspNet.WebApi.WebHost.5.2.3\lib\net45\System.Web.Http.WebHost.dll

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-5 nuget


    【解决方案1】:

    在包管理器控制台中

    Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3

    【讨论】:

    • 我做了,但仍然给我同样的错误
      PM> install-package microsoft.aspnet.webapi.core -version 5.2.3 Attempting to resolve dependency 'Microsoft.AspNet. WebApi.Client (≥ 5.2.3)'。正在尝试解决依赖项“Newtonsoft.Json (≥ 6.0.4)”。 'Microsoft.AspNet.WebApi.Core 5.2.3' 已安装。 www.ptsol.com.au 已经引用了“Microsoft.AspNet.WebApi.Core 5.2.3”。
    • @JohnHadikusumo 为您的所有项目执行此操作。您似乎有一个旧版本的依赖项目。
    • 是的,这会起作用。在运行此命令之前和之后仔细阅读您的 Web.config 和 packages.config,您会看到发生了什么变化。
    • 解决了我的问题。
    • 我不得不改用Install-Package Microsoft.AspNet.WebApi.Client -Version 5.2.7(.Client 而不是.Core)。我已经有了 .Core 5.2.7,但我仍然收到错误消息。 nuget.org/packages/Microsoft.AspNet.WebApi.Client
    【解决方案2】:

    我做了Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3,但它仍然没有用。然后查看我的项目 bin 文件夹,发现它仍然有旧的 System.Web.Mvc 文件。

    所以我手动将更新的文件从包中复制到 bin 文件夹中。然后我又开始运行了。

    【讨论】:

      【解决方案3】:

      修复它的一种方法是修改 web.config 文件中的程序集重定向。

      修改如下:

      <dependentAssembly>
              <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
              <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
      

      <dependentAssembly>
              <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
              <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="4.0.0.0" />
      </dependentAssembly>
      

      所以 oldVersion 属性应该从“...-4.0.0.0”更改为“...-5.2.3.0”。

      【讨论】:

      • 这对我有用。我们将bindingRedirect 设置为&lt;bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /&gt;,但将其更改为使用4.0.0.0。对我来说仍然没有意义,因为应该使用 NuGet 包 DLL 而不是 GAC 版本,但是嘿,它工作......所以谢谢!
      【解决方案4】:

      安装包 Microsoft.AspNet.WebApi.Core -version 5.2.3

      然后在项目中添加引用->浏览。按下浏览按钮并转到 C:\Users\UserName\Documents\Visual Studio 2015\Projects\ProjectName\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45 并添加需要的.dll文件

      【讨论】:

        【解决方案5】:

        卸载并重新安装 NuGet 包对我有用。

        1. 从项目中删除所有旧引用。

        在包管理器控制台中执行:

        1. UnInstall-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
        2. Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3

        【讨论】:

        • 就这个解决了我的问题。我做了这么多,胜利行动是如此简单。
        【解决方案6】:

        您安装的软件包向 5.2.3.0 版 dll 引入了依赖项,正如上面的用户 Bracher 所示。 Microsoft.AspNet.WebApi.Cors 是一个示例包。我采取的路径是更新 MVC 项目 proir 到任何包安装:

        Install-Package Microsoft.AspNet.Mvc -Version 5.2.3
        

        https://www.nuget.org/packages/microsoft.aspnet.mvc

        【讨论】:

          【解决方案7】:

          在你的 nuget 包管理器中安装它

          Install-Package Microsoft.AspNet.WebApi.WebHost -Version 5.2.7
          

          粘贴

          使用 System.Web.Http;

          这应该可以工作

          【讨论】:

            猜你喜欢
            • 2016-12-12
            • 2016-05-25
            • 2018-03-02
            • 2012-04-01
            • 2012-11-11
            • 1970-01-01
            • 1970-01-01
            • 2017-02-04
            • 1970-01-01
            相关资源
            最近更新 更多