当我有程序集的时候,WebAPI发现了引用错误

我在我的解决scheme中创build了一个MVC 4 Web API应用程序,但是现在我得到了2个错误,我需要一些帮助。

'System.Web.Http.HttpConfiguration'没有包含'MapHttpAttributeRoutes'的定义,也没有find接受'System.Web.Http.HttpConfiguration'types的第一个参数的扩展方法'MapHttpAttributeRoutes'(你是否缺lessusing指令或组件参考?)

下面的代码发生此错误

文件:WebApiConfig.cs(在App_Start文件夹)

using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; using System.Web; public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API configuration and services // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } } 

另外一个,就是Global.asax

“System.Web.Http.GlobalConfiguration”不包含“configuration”的定义

文件:Global.asax.cs

 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http; using System.Web.Http.WebHost; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; public class WebApiApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } } 

在这里输入图像说明

UPDATE

通过Nuget安装WebAPI WebHost(@ sa_ddam213的build议)后,它解决了一些问题,但现在运行我的应用程序时,得到了这个错误

无法加载文件或程序集“System.Net.Http”或其依赖项之一。 定位的程序集清单定义与程序集引用不匹配

Web.config文件具有程序集

  <dependentAssembly> <assemblyIdentity name="System.Web.Http" publicKeyToken="31BF3856AD364E35" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-5.2.0.0" newVersion="5.2.0.0"/> </dependentAssembly> 

强制重新安装WebAPI可以完成这项工作:

  update-package microsoft.aspnet.webapi -reinstall 

我做了:

 get-project <project_name> | uninstall-Package Microsoft.AspNet.WebApi.WebHost -force 

然后重新安装(与其他项目中的特定版本一致)

 get-project <project_name> | install-Package Microsoft.AspNet.WebApi.WebHost -Version 5.2.2 

这解决了我的问题。

我在我的项目中卸载了一些nuget包,包括MVC,并重新安装。 解决。 谢谢大家的帮助。

更新你的NuGet包。 为我工作。

请尝试在nugetmanager控制台上运行以下命令来更新您的软件包

 update-package microsoft.aspnet.webapi.webhost -reinstall 

特别是对我来说,我从工作解决scheme的TFS下载,并得到了错误

 System.Web.Http.HttpConfiguration' does not contain a definition for 'MapHttpAttributeRoutes' and no extension method 'MapHttpAttributeRoutes' 

正要重新安装web api,但是我知道过去的经验,安装项目的顺序的依赖关系链可能会带来一些戏剧性。

JSON被击中或错过,因为有时我看到更新的JSON的力量和卸载一个较新版本的另一个软件包,并安装一个旧版本,因为它认为“它知道最好的。

对我来说,通过nuget 更新JSON是我所要做的。

1)检查你的解决scheme文件夹包\ Microsoft.AspNet.WebApi.Client.5.2.3 \ lib \ net45有System.Web.Http.dll是否可用。 它应该在那里。 如果不可用,请从其他正在运行的项目包文件夹中复制。 2)从您的项目中删除System.Web.Http.dll的引用。 3)通过指向包\ Microsoft.AspNet.WebApi.Client.5.2.3 \ lib \ net45 \ System.Web.Http.dll的新.dll添加新的引用