19

Как создать проект, который использует WebApi2 в visual studio 2012?WebApi2 в visual studio 2012

Должен ли я создать пустой проект или мне нужно создать проект MVC?

Я не хочу устанавливать предварительный просмотр Visual Studio 2013, пожалуйста, помогите.

ответ

6

Создайте проект MVC, щелкните правой кнопкой мыши и выберите

  1. Создание проекта MVC
  2. правой кнопкой мыши проект в обозревателе решений и выберите «Управление NuGet пакетов»
  3. Select «включают пререлиз»
  4. Поиск Web API и выберите "Microsoft ASP.NET Web API", убедитесь, что версия 5.0.0-beta2 (Пререлиз)

Подождите, через какое-то время вам должно быть хорошо.

+0

+1. Похоже, теперь есть обновленное обновление пакета NUGET для Web API 5.1 (не бета-версия), которое устраняет эту проблему для Visual Studio 2012. Просто выполните шаги обновления пакета nuget выше в пакетах веб-API, и это должно сработать. –

6

Насколько я знаю, Web API 2 равен 5.0.0-beta2, поэтому вы можете просто извлечь это из NuGet, как описано Olav.

Однако, если вы установили обновление VS2012.2, вы можете начать с шаблона веб-API, а не только с помощью шаблона MVC. Запустите новый проект, выберите MVC и затем выберите шаблон веб-API. Это не добавит многого, всего несколько примеров контроллеров и некоторые файлы конфигурации, специально разработанные для Web API.

Для конкретных функций VS2013, как показано на некоторых видеороликах сборки. Боюсь, вам понадобится предварительный просмотр 2013 года, чтобы использовать их.

+0

Это сработало, спасибо. – user2070369

3

Мои первоначальные исследования привели меня к тому, чтобы подходить к ручной настройке, описанной ниже, поэтому я на самом деле никогда не пробовал предложение Олава. Если это сработает, возможно, это путь. Но если нет, или если отсутствуют какие-то детали для этого подхода, вот шаги, которые я предпринял. Я использую VS 2012 Update 3.

  • Начать с новой MVC 4/веб-проекта API
  • От менеджера консоли пакета, выполните команду:

    Install-Package Microsoft.AspNet.WebApi -pre

I получил предупреждение о том, что он пропускал _ViewStart.cshtml, но он дал мне возможность перезаписать. Я выбрал Да.

  • Снова от менеджера консоли пакета, выполните команду:

    Install-Package Microsoft.AspNet.Mvc -Pre

  • Изменить web.config, вид \ web.config и области \ Views \ web.config в соответствии с these instructions. Игнорируйте шаги 1 - 5 в разделе «Шаги обновления». Кроме того, мне не нужно было ничего делать с WebHelpers.

  • Добавить ссылки на System.Web.Http 5.0 на web.config согласно шагу 2 из this answer.
  • Если вы построите на этом этапе, вы получите ошибку компилятора, указав, что XmlDocumentationProvider в папке Areas \ HelpPage не полностью реализует интерфейс. Не уверен, что это такое, но на данный момент это не важно для меня, поэтому я просто добавил пустые реализации к двум отсутствующим методам (совет: щелкните правой кнопкой мыши на IDocumentationProvider и выберите интерфейс реализации - он добавит два отсутствующих метода).

Я сделал это пару дней назад, и моя память уже становится нечеткой, но я думаю, что она ее охватывает. На этом этапе я могу использовать WebAPI2, включая маршрутизацию на основе атрибутов!

30

Вам необходимо установить ASP.NET and Web Tools 2013.1 for Visual Studio 2012 который добавляет Web API 2 and MVC 5 templates

+2

Эти ссылки приводят к установщику веб-платформы, который, похоже, больше не использует ASP.NET и Web Tools 2013.1 для установщика Visual Studio 2012. Установщик ASP.NET и Web Tools 2013.2 доступен через Web PI, но, похоже, не добавляет шаблоны Web API 2. Я смог найти установщиков 2012.1 здесь. Https://www.microsoft.com/en-us/download/details.aspx?id=41532 –

+0

@RyanTaylor ваш комментарий на месте. Это должен быть ответ! – seebiscuit

+0

@ RyanTaylor установлен WT2013.1, но я не вижу, что Шаблоны в диалоговом окне Добавить новый проект. Есть рекомендации? – seebiscuit

1

Открыть вид и выберите package manager console и вставьте следующую команду и нажмите клавишу ВВОД.

Install-Package Microsoft.AspNet.WebApi 

Package manger console будет отображаться внизу.

enter image description here