Почему System.Web.Mvc не указан в разделе Добавить ссылки? - PullRequest
126 голосов
/ 06 сентября 2010

Использование C #, Visual Studio 2010.

Существует пространство имен с именем System.Web.Mvc , задокументированное в MSDN. Документация для всех типов в этом пространстве имен говорит, что они находятся в System.Web.Mvc.dll.

Однако, когда я перехожу на страницу «Добавить ссылку» на вкладку «.NET», эта сборка отсутствует в списке. Почему?

Ответы [ 14 ]

104 голосов
/ 07 июня 2013

В VS Express 2012 я не мог найти System.Web.Mvc на вкладке "сборки", но после небольшого поиска я обнаружил, что мне нужно посмотреть " сборки \ расширения "вкладка, а не вкладка "сборки \ рамки" по умолчанию.

89 голосов
/ 01 июня 2014

Лучший способ - использовать менеджер пакетов NuGet.

Просто обновите приведенный ниже пакет MVC, и он должен работать.

enter image description here

60 голосов
/ 15 апреля 2012

У меня была та же проблема, и я не смог найти справочную сборку System.Web.MVC.

Наконец выяснил, и он был расположен в следующем месте.

Обратите внимание, если ваш VS был установлен в C: (Иногда MVC.dll находится не в папке по умолчанию, о которой все говорят, я имею в виду папку " Reference Assemblies ", расположенную на диске C: )

если его нет, он обязательно должен быть здесь:

\ Program Files (x86) \ Microsoft ASP.NET \ ASP.NET MVC 2 \ Assemblies \ System.Web.Mvc.dll

Так что добавьте dll через навигацию или вкладку обзора в меню добавления справки.

27 голосов
/ 18 мая 2013

Вы также можете добавить это из консоли диспетчера пакетов Nuget, например:

Install-Package Microsoft.AspNet.Mvc -Version 4.0.20710.0 -ProjectName XXXXX

Microsoft.AspNet.Mvc зависит от:

  • 'Microsoft.AspNet.WebPages (≥ 2.0.20710.0 && <2.1)' </li>
  • 'Microsoft.Web.Infrastructure (≥ 1.0.0.0)'
  • 'Microsoft.AspNet.Razor (≥ 2.0.20710.0 && <2.1)' </li>

... что для меня не так важно. В нашем случае это библиотека классов, которая существует исключительно для поддержки наших приложений Mvc. Итак, мы полагаем, что в худшем случае это доброкачественная зависимость.

Я определенно предпочитаю указывать на сборку в файловой системе или в GAC, поскольку обновление пакета в будущем, вероятно, будет намного менее болезненным, чем опыт, который я имел в отношении ссылок на сборку GAC и файловой системы прошлое.

11 голосов
/ 11 сентября 2012

У меня была такая же проблема, и вот забавная причина: я предполагаю, что вы ожидаете, что System.Web.Mvc будет находиться под System.Web в списке. Но список не алфавитный.

Сначала отсортируйте список, а затем посмотрите рядом с System.Web.

5 голосов
/ 12 марта 2012

Проверьте эти шаги:

  1. Проверьте, правильно ли установлен MVC.
  2. Проверьте свойство проекта и посмотрите, что такое Target Framework проекта.Если целевая платформа не установлена ​​на .Net Framework 4, установите его.

Примечание : если целевая платформа установлена ​​на .Net Framework 4 Client Profile, она не будет отображатьсяСсылка MVC на список литературы.Различия между .Net Framework 4 и .Net Framework 4 Client Profile можно найти здесь .

Клиентский профиль .NET Framework 4 является подмножеством .NET Framework 4, оптимизированным для клиентских приложений.Он предоставляет функциональные возможности для большинства клиентских приложений, включая функции Windows Presentation Foundation (WPF), Windows Forms, Windows Communication Foundation (WCF) и ClickOnce.Это обеспечивает более быстрое развертывание и меньший пакет установки для приложений, нацеленных на клиентский профиль .NET Framework 4.

5 голосов
/ 06 сентября 2010

"Хорошо, добавление этого XML в Web.config работает, но не отвечает на вопрос"

Он должен быть там.По умолчанию список добавления ссылок выглядит упорядоченным, но это не так.Нажмите на заголовок и посмотрите снова.

3 голосов
/ 19 июля 2014

Я решил эту проблему с помощью поиска «mvc».System.Web.Mvc появился в результатах поиска, несмотря на то, что он не содержится в списке.

3 голосов
/ 06 сентября 2010

В списке появилась нужная сборка.

Я могу только предположить, что вызвало его появление, но я подозреваю, что это факт, что я пошел Файл Новый Проект ASP.NET Web Application , чего я никогда раньше не делал. Вполне возможно, что это вызвало некоторую позднюю инициализацию и список заполнился дополнительными сборками для веб-разработки.

2 голосов
/ 04 октября 2012

Это изменилось для Visual Studio 2012 (я знаю, что оригинальный вопрос говорит VS2010, но заголовок все равно будет попадать при поиске).

При создании проекта VS2012 MVC system.web.mvcпомещается в папку пакетов, которая является равноправной с решением.На него будут ссылаться в веб-проекте по умолчанию, и вы можете найти там точный путь).

Если вы хотите сослаться на это во вторичном проекте (скажем, вспомогательный .dll с фильтрами или другими атрибутами), тогдаВы можете сослаться на это оттуда.

...