Ошибка при обновлении до 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
, проблема решена