升级到WebAPI 2.1时出错XmlDocumentationProvider未实现接口成员GetDocumentation

Nul*_*nce 17 .net asp.net asp.net-web-api visual-studio-2012

我在这里按照教程:

http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#download

我在Visual Studio 2012(.NET Framework 4.5)中创建了一个MVC Web Api项目,并在我的NuGet包管理器控制台安装包中运行此命令Microsoft.AspNet.WebApi

当我尝试构建我的项目时,我收到此错误:

'CommonServices.Areas.HelpPage.XmlDocumentationProvider' does not implement interface member 
    'System.Web.Http.Description.IDocumentationProvider.GetDocumentation(System.Web.Http.Controllers.HttpControllerDescriptor)' c:\users\administrator\documents\visual studio 2012\Projects\CommonServices\CommonServices\Areas\HelpPage\XmlDocumentationProvider.cs

'CommonServices.Areas.HelpPage.XmlDocumentationProvider' does not implement interface member 
    'System.Web.Http.Description.IDocumentationProvider.GetResponseDocumentation(System.Web.Http.Controllers.HttpActionDescriptor)' c:\users\administrator\documents\visual studio 2012\Projects\CommonServices\CommonServices\Areas\HelpPage\XmlDocumentationProvider.cs
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

Ale*_*ins 21

您可以通过在程序包管理器控制台中运行以下两个命令来解决此问题

Install-Package Microsoft.AspNet.WebApi.HelpPage
Run Code Online (Sandbox Code Playgroud)

这将安装缺少所需的HelpPage组件.然后,您可以在项目中的所有NuGet包上运行更新,以验证所有包都是最新的.

Update-Package -ProjectName 'YourProject' -Reinstall
Run Code Online (Sandbox Code Playgroud)

(请记住将YourProject替换为实际项目的名称)

更新:如果在构建和运行后继续收到错误,则可能需要更新Web.Config文件中的Razor引用,如下所示:

<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
Run Code Online (Sandbox Code Playgroud)

  • 标记为解决方案的答案并没有为我解决这个问题.此答案中的Install-Package HelpPage解决了这个问题. (3认同)

Alb*_*ano 19

获得Microsoft.AspNet.WebApi时遇到了同样的问题.

在Nuget Package Manager Console中写下:

Update-Package -ProjectName 'YourProjectNameGoesHere' -Reinstall
Run Code Online (Sandbox Code Playgroud)

这将更新您的所有包,它将解决您的问题.我希望它有所帮助

  • 我使用了上面提到的命令,所有内容都已正确安装和更新.但我仍然得到错误. (5认同)
  • 这是一个更好的答案,因为它明确地给出了完成工作的命令. (2认同)
  • 我运行了Update-Package,但我也遇到了同样的错误. (2认同)
  • 这个答案并没有解决问题.[这](http://stackoverflow.com/a/31472485/4480300)答案呢. (2认同)

Kri*_*hna 14

我得到了同样的错误.这是怎么修的.

将这两个方法添加到~\Areas\HelpPage\XmlDocumentationProvider.cs类中

    public virtual string GetDocumentation(HttpControllerDescriptor controllerDescriptor)
    {
        return "";
    }

    public virtual string GetResponseDocumentation(HttpActionDescriptor actionDescriptor)
    {
        return "";
    }
Run Code Online (Sandbox Code Playgroud)

显然,我不会将这个解决方案用于真实的企业应用程序,因为我不知道这是否会破坏任何重要的东西.如果您正在运行测试项目或其他什么,我只会这样做.(虽然看起来只有某种文档是唯一受影响的文件)


小智 8

即使在我跑完之后Update-Package -ProjectName 'YourProjectNameGoesHere' -Reinstall,仍然遇到了同样的问题.

PM> install-package Microsoft.AspNet.WebApi.HelpPage,问题解决了