Ошибка "Отсутствуют веб-компоненты" при открытии проекта MVC3 в Visual Studio 11 Beta
Когда я открываю решение, содержащее проект MVC3 в бета-версии Visual Studio 11, я вижу следующее сообщение:
Для веб-проекта Landboss.Web требуются отсутствующие веб-компоненты для работы с Visual Studio. Хотите ли вы загрузить и установить их с помощью установщика веб-платформы сейчас? (Примечание. Для вступления в силу некоторых компонентов может потребоваться перезагрузка.)
Веб-страницы ASP.NET с синтаксисом Razor 1.0.0.0
Когда я нажимаю Да, установщик веб-платформы открывается и сообщает мне следующее:
Продукт, который вы пытаетесь установить, не поддерживается в вашей операционной системе. Для получения дополнительной информации нажмите здесь.
До сих пор я установил Visual Studio 11 Beta на двух компьютерах, и у обеих есть одна и та же проблема.
7 ответов
Я полагаю, что это было вызвано тем, что я ранее установил Visual Studio 11 Developer Preview. Я удалил его перед установкой бета-версии, но вы знаете, как это происходит.
Чтобы это исправить, я сделал следующее:
- Удалено "Microsoft ASP.NET MVC 3 - обновление средств Visual Studio 11"
- Удалено "Веб-страницы Microsoft ASP.NET - Инструменты Visual Studio 11"
- Запустил Visual Studio 11 Beta "Ремонт" с установочного ISO.
Это сработало! Razor подсветка синтаксиса и intellisense вернулись, и предупреждение больше не отображается, когда я открываю проект.
Это связано с веб-страницами настроек конфигурации: версия
[appSettings]
...
[add key="webpages:Version" value="x.0.0.0" /]
...
[/appSettings]
если в системе установлено несколько версий бритвы (на данный момент 1 или 2), лучше добавьте этот параметр, если он отсутствует. Выберите нужную версию на нужном уровне. (Очевидно, заменить скобки...)
У меня также была такая ошибка, когда в хранилище был зафиксирован конфликт Subversion - присутствие этого блока в настройках приложения web.config, по-видимому, вызывало сообщение при загрузке проекта:
<<<<<<< .mine
<add key="blogCommentsApprovedByDefault" value="false" />
(other appsettings)
=======
<add key="blogCommentsApprovedByDefault" value="false" />
(other appsettings)
>>>>>>> .r358
Устранение конфликта Subversion в appSettings устранило эту ошибку.
Хотя решение @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.
Я получил эту ошибку, когда что-то в файле web.config было повреждено. Я просто отформатировал файл и затем сохранил его. Затем я перезапустил Visual Studio.
Я только что был укушен этим, и это еще один вариант web.config
проблема. В моем случае мы не храним файл web.config в нашем репозитории, а генерируем его из шаблона в качестве пользовательского шага сборки. Когда мы выполняли очистку рабочего пространства *, этот файл удалялся (правильно, потому что его нет в репо), и поэтому при следующем запуске Visual Studio он пожаловался. Построение командной строки через msbuild никогда не затрагивалось этим.
* У нас есть "частичная" очистка, которая удаляет все артефакты сборки (включая оставленные после VS), и "полная" очистка, которая возвращает рабочее пространство в то же состояние, как если бы вы только что вытащили его из репозитория.
Я получил эту ошибку, потому что раздел appSettings был настроен для шифрования, а ключи шифрования были настроены неправильно. Кажется, что эта ошибка имеет тенденцию всплывать всякий раз, когда что-то неправильно / неправильно сформировано с web.config, даже если оно не связано с MVC.