Почему System.Web.Mvc не указан в списке Добавить ссылки?

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

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

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

Ответ 1

Теперь в списке появилась желаемая сборка.

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

Ответ 2

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

Ответ 3

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

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

enter image description here

Ответ 4

У меня была такая же проблема, и я не смог найти справочную сборку 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 через навигацию или вкладку просмотра в меню ссылок добавления.

Ответ 5

Вы также можете добавить это из консоли диспетчера пакетов 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)'
  • 'Microsoft.Web.Infrastructure(≥ 1.0.0.0)'
  • 'Microsoft.AspNet.Razor(≥ 2.0.20710.0 & < 2.1)'

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

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

Ответ 6

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

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

Ответ 7

"ОК, добавив, что XML в Web.config работает, но он не отвечает вопрос"

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

Ответ 8

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

  • Проверьте, установлен ли MVC правильно.
  • Проверьте свойство проекта и посмотрите, что представляет собой целевая структура проекта. Если целевая структура не установлена ​​в .Net Framework 4, установите ее.

Примечание. Если в целевой структуре установлен профиль .Net Framework 4 Client, он не будет перечислять ссылку 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.

Ответ 9

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

Ответ 10

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

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

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

Ответ 11

Я полагаю, вы обнаружите, что сборка MVC указана в файле web.config, а не в самом проекте.

Что-то вроде этого:

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  </assemblies>
</compilation>

Чтобы ответить на ваш комментарий,

Лучший ответ, который я могу дать, - это здесь:

Элемент add добавляет сборку ссылка на использование во время компиляции динамический ресурс. ASP.NET автоматически связывает эту сборку с ресурс при компиляции каждого кода модуль.

Ответ 12

он может быть установлен отдельно, и он не включен в рамочную конструкцию, выберите вкладку "Расширения", и она существует, есть и другие другие библиотеки, все нормально не нужно использовать старые библиотеки и т.д. существует старые 20 30 и 4001