Ошибка при обновлении до WebAPI 2.1 XmlDocumentationProvider не реализует элемент интерфейса GetDocumentation

Я следую учебнику здесь:

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

Я создал проект MVC Web Api в Visual Studio 2012 (.NET Framework 4.5) и выполнил эту команду в установочном пакете консоли диспетчера пакетов 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

Есть ли что-то, что я пропустил?

Ответы

Ответ 1

У меня такая же проблема при получении Microsoft.AspNet.WebApi.

В консоли менеджера пакетов Nuget напишите это:

Update-Package -ProjectName 'YourProjectNameGoesHere' -Reinstall

Это обновит все ваши пакеты, и это решит вашу проблему. Я надеюсь, что это поможет

Ответ 2

Я получил ту же ошибку. Вот как это исправлено.

Добавьте эти два метода в класс ~\Areas\HelpPage\XmlDocumentationProvider.cs

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

    public virtual string GetResponseDocumentation(HttpActionDescriptor actionDescriptor)
    {
        return "";
    }

Очевидно, что я не буду использовать это решение в реальных приложениях Enterprise, так как я не знаю, что это сломает что-то важное. Я бы сделал это только в том случае, если вы запускаете тестовый проект или что-то в этом роде. (, хотя похоже, что только некоторая документация - это единственное, на что влияет)

Ответ 3

Вы можете исправить эту проблему, выполнив следующие две команды в консоли диспетчера пакетов

Install-Package Microsoft.AspNet.WebApi.HelpPage

Это приведет к установке необходимых компонентов HelpPage, которые отсутствуют. Затем вы можете запустить обновление во всех пакетах NuGet в своем проекте, чтобы убедиться, что все пакеты обновлены.

Update-Package -ProjectName 'YourProject' -Reinstall

(Не забудьте заменить YourProject именем вашего фактического проекта)

Обновление. Если вы продолжаете получать ошибки после создания и запуска, вам может потребоваться обновить ссылки Razor в вашем файле Web.Config, чтобы выглядеть так:

<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>

Ответ 4

Даже после того, как я запустил Update-Package -ProjectName 'YourProjectNameGoesHere' -Reinstall, все равно была проблема.

run PM> install-package Microsoft.AspNet.WebApi.HelpPage, проблема решена