Почему 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