在哪里可以找到NuGet软件包以升级到System.Web.Http v5.0.0.0?


125

刚刚将ASP.NET MVC4项目升级为使用Unity.WebApi版本5.0.0.0,并且根据以下错误需要System.Web.Http v 5.0.0.0:

Assembly 'Unity.WebApi, Version=5.1.0.0, Culture=neutral, PublicKeyToken=43da31bc42a85347' uses 'System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'   

我目前正在引用System.Web.Http v4.0,但是将以下NuGet软件包升级到了各自的最新版本:

  • ANTLRv3

  • Microsoft ASP.NET通用提供程序

  • Microsoft.Web.Infrastructure

  • Microsoft ASP.NET MVC

  • Microsoft ASP.NET剃刀

  • Microsoft ASP.NET通用提供程序核心库

  • Microsoft ASP.NET通用提供程序

  • Microsoft ASP.NET Web API 2客户端

  • Microsoft ASP.NET Web API 2核心

  • Microsoft ASP.NET Web API 2 Web主机

  • Microsoft ASP.NET Web API 2

  • Microsoft ASP.NET网页

  • Microsoft.Web.Infrastructure

  • Web油脂

    通过NuGet。我没有列出相关的JavaScript库,例如Micrososft.jQuery.Unobtrusive Validation等。

什么是NuGet软件包才能升级System.Web.Http,还是必须手动执行此操作?


如果在NuGet软件包管理器中选择“包括预发行版本”而不是“稳定”,则会看到System.Web.Http。那是您要找的东西吗?
威廉

选择“包含预发布”后,我应该在搜索System.Web.Http吗?还是我应该在哪里看?
克劳斯·纳吉

忽略我的上述评论!那包已经过时了。您应该尝试遵循Stjin的建议。奇怪的是,当我安装Unity.WebApi MVC 4项目时,它会自动更新System.Web.Http引用到5.0,所以我不知道为什么它不为你工作。如果其他所有方法均失败,则可以尝试卸载Unity软件包并重新安装。
威廉

Answers:


206

您需要Microsoft.AspNet.WebApi.Core程序包。

您可以在.csproj文件中看到它:

<Reference Include="System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45\System.Web.Http.dll</HintPath>
</Reference>

我已将Microsoft ASP.NET Web API 2核心(id = Microsoft.AspNet.WebApi.Core)升级到上述v5.0.0.0。看起来我需要删除并重新添加它们?
克劳斯·尼治

7
还必须清理,删除bin_deployableAssemblies并重建。
克劳斯·纳吉

具有几乎完全相同的项目。每个人都在谈论的bin_deployable Assemblies文件夹在哪里?
nzondlo

@nzondlo我认为发布应用程序时会生成文件夹。虽然不完全确定。
2013年

1
@nzondlo bin_deployableAssemblies只是一个常规文件夹,但是在项目目录中存在时会得到特殊处理。发布Web应用程序时,该文件夹中的任何.dll文件都会复制到bin目录。在NuGet成为主流之前,它用于与Web应用程序一起部署System.Web.Mvc dll(及其他)。
史蒂文·里肯斯

9

我有一个解决方案中的几个项目。对于某些项目,我以前手动添加了参考。当我使用NuGet更新WebAPI程序包时,这些引用不会自动更新。

我发现我可以手动更新这些引用,以便它们指向我的解决方案的Packages文件夹内的v5 DLL,或者执行以下操作。

  1. 转到“管理NuGet程序包”
  2. 选择已安装的程序包“ Microsoft ASP.NET Web API 2.1”
  3. 单击管理,然后检查我之前手动添加的项目。

卸载软件包,然后立即重新安装它,可以为我修复它。在其他开发机器上启动项目时发生。自动软件包还原以某种方式提供了错误的版本。
Matt J.14年

1
主要问题是为主要项目更新Web.Api,但引用的项目仍在使用旧版本。应通过右键单击解决方案名称和“ @Tony”提到的“管理Nuget软件包”菜单来一起更新。干杯!
Orhaan 2014年

安装软件包Microsoft.AspNet.WebApi.Core
C Sharper
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.