【问题标题】:Where can I find a NuGet package for upgrading to System.Web.Http v5.0.0.0?在哪里可以找到用于升级到 System.Web.Http v5.0.0.0 的 NuGet 包?
【发布时间】:2013-12-10 17:12:47
【问题描述】:

刚刚升级了一个 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

  • 微软 ASP.NET MVC

  • 微软 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 网络主机

  • 微软 ASP.NET Web API 2

  • 微软 ASP.NET 网页

  • Microsoft.Web.Infrastructure

  • 网络润滑脂

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

升级 System.Web.Http 的 NuGet 包是什么,还是我必须手动执行此操作?

【问题讨论】:

  • 如果在 NuGet 包管理器中选择“包含预发布”而不是“稳定”,您将看到 System.Web.Http。这就是你要找的东西吗?
  • 我应该在选择“包含预发布”后搜索 System.Web.Http 吗?或者我应该去哪里看?
  • 无视我上面的评论!那个包已经过时了。您应该尝试遵循以下 Stjin 的建议。奇怪的是,当我在 my MVC 4 项目中安装 Unity.WebApi 时,它会自动将 System.Web.Http 引用更新为 v5.0,所以我不确定为什么它不起作用你。如果一切都失败了,您可以尝试卸载 Unity 包并重新安装。

标签: c# .net asp.net-mvc-4 nuget asp.net-web-api2


【解决方案1】:

您需要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 Core (id= Microsoft.AspNet.WebApi.Core ) 升级到上面列出的 v5.0.0.0。看来我需要删除并重新添加它们?
  • 还必须清理、删除 bin_deployableAssemblies 并重建。
  • 拥有几乎完全相同的项目。大家一直在谈论的 bin_deployable Assemblies 文件夹在哪里?
  • @nzondlo 我相信发布应用程序时会生成该文件夹。不过不完全确定。
  • @nzondlo bin_deployableAssemblies 只是一个普通文件夹,但当它存在于项目目录中时会得到特殊处理。当您发布 Web 应用程序时,该文件夹中的任何 .dll 文件都会复制到 bin 目录中。在 NuGet 成为主流之前,它用于将 System.Web.Mvc dll(和其他)与您的 Web 应用一起部署。
【解决方案2】:

我在一个解决方案中有几个项目。对于一些项目,我之前手动添加了引用。当我使用 NuGet 更新 WebAPI 包时,这些引用没有自动更新。

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

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

【讨论】:

  • 卸载软件包,然后立即重新安装它为我修复它。在将项目放在不同的开发机器上时发生。自动包恢复以某种方式得到了错误的版本。
  • 主要问题是更新主项目的 Web.Api,但引用的项目仍在使用旧版本。它应该通过右键单击@Tony 提到的解决方案名称和管理 Nuget 包菜单一起更新。干杯!
  • 安装包 Microsoft.AspNet.WebApi.Core
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 1970-01-01
  • 2011-11-04
  • 1970-01-01
相关资源
最近更新 更多