Ошибка "Отсутствующие веб-компоненты" при открытии проекта MVC3 в бета-версии Visual Studio 11

Когда я открываю решение, содержащее проект MVC3 в бета-версии Visual Studio 11, я вижу следующее сообщение:

The Web project 'Landboss.Web' requires missing web components to run with Visual Studio. Would you like to download and install them using the Web Platform Installer now? (Note: Some components might require restart to take effect.) ASP.NET Web pages with Razor syntax 1.0.0.0

Веб-проект "Landboss.Web" требует, чтобы отсутствовали веб-компоненты для запуска с Visual Studio. Вы хотите загрузить и установить их, используя установщик веб-платформы сейчас? (Примечание. Некоторые компоненты могут потребовать перезапустите, чтобы вступить в силу.)

Веб-страницы ASP.NET с синтаксисом Razor 1.0.0.0

Когда я нажимаю Да, установщик Web Platform открывается и сообщает мне следующее:

enter image description here

Продукт, который вы пытаетесь установить, не поддерживается на вашем операционная система. Нажмите здесь для получения дополнительной информации.

До сих пор я установил бета-версию Visual Studio 11 на двух компьютерах, и обе они имеют эту же проблему.

Ответ 1

Я полагаю, что это было вызвано тем фактом, что ранее я установил Visual Studio 11 Developer Preview. Я удалил его перед установкой бета-версии, но вы знаете, как это происходит.

Чтобы исправить это, я сделал следующее:

  • Деинсталляция "Microsoft ASP.NET MVC 3 - Обновление инструментов Visual Studio 11"
  • Удаленные "Веб-страницы Microsoft ASP.NET - Инструменты Visual Studio 11"
  • Отредактируйте бета-версию Visual Studio 11 "Ремонт" из установки ISO.

Это сработало! Выделение синтаксиса Razor и intellisense вернулись, и предупреждающее сообщение больше не отображается, когда я открываю проект.

Ответ 2

Это связано с веб-страницами настройки конфигурации: Version

[appSettings]
...
   [add key="webpages:Version" value="x.0.0.0" /]
...
[/appSettings]

Если у вас несколько версий бритвы в системе (1 или 2 на данный момент), лучше добавьте этот параметр, если он отсутствует. Выберите нужную вам версию на соответствующем уровне. (Очевидно, заменить скобки...)

Ответ 3

Я также имел эту ошибку, когда конфликт с Subversion был привязан к репозиторию - наличие этого блока в настройках приложения web.config, казалось, вызывало сообщение при загрузке проекта:

<<<<<<< .mine
<add key="blogCommentsApprovedByDefault" value="false" />
(other appsettings)
=======
<add key="blogCommentsApprovedByDefault" value="false" />
(other appsettings)
>>>>>>> .r358

Очистка конфликта Subversion в appSettings разрешила эту ошибку.

Ответ 4

Хотя @silent__thought решение может исправить проблему, это не самый простой способ ее исправить.

решение @Costas может точно решить проблему, но вот более подробное объяснение если вам это нужно.

В моем случае мне понадобилось следующее в моем файле web.config(для MVC 4):

<configuration>
  <appSettings>
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
    <httpHandlers></httpHandlers>
  </system.web>
</configuration>

Конечно, вам может не понадобиться все эти конфигурации для вашего приложения. Это просто настройки по умолчанию для проекта MVC 4.

Ответ 5

Я получил эту ошибку, потому что раздел appSettings был настроен для использования, а ключи шифрования были неправильно настроены. Кажется, что эта ошибка имеет тенденцию всплывать всякий раз, когда есть что-то неправильное/искаженное с web.config, даже если оно не связано с MVC.

Ответ 6

Я получил эту ошибку, когда что-то в файле web.config было повреждено. Я просто отформатировал файл, а затем сохранил его. Затем я перезапустил Visual Studio.

Ответ 7

Я только что был укушен этим, и это еще одна вариация проблемы web.config. В моем случае мы не храним файл web.config в нашем репо, а генерируем его из шаблона как шаг пользовательской сборки. Когда мы делаем чистую рабочую область *, этот файл удаляется (правильно, потому что он не в репо), и поэтому в следующий раз, когда Visual Studio была запущена, он жаловался. Командная строка, созданная через msbuild, никогда не была затронута этим.

* У нас есть "частичная" чистка, которая удаляет все артефакты сборки (включая эти VS оставляет за собой) и "полную" очистку, которая сбрасывает рабочее пространство в такое же состояние, как если бы вы просто вытащили его из репо.