Почему System.Web.Mvc не указан в разделе Добавление ссылок?
-
01-10-2019 - |
Вопрос
Используя C #, Visual Studio 2010.
Существует пространство имен, называемое System.Web.Mvc документировано в MSDN.В документации для всех типов в этом пространстве имен говорится, что они находятся в System.Web.Mvc.dll
.
Однако, когда я перехожу на вкладку “Добавить ссылку”.NET", эта сборка отсутствует в списке.Почему?
Решение 8
Желаемая сборка появилась в списке сейчас.
Я могу только спекулировать только что вызвало его появиться, но я подозреваю, что это тот факт, что я пошел Файл → Новый → Проект → Веб-приложение ASP.NET, который я никогда не делал раньше. Возможно, что это вызвало возможность произойти некоторую позднюю инициацию, а список для заполнения дополнительных сборок для веб-разработки.
Другие советы
В VS Express 2012 я не смог найти System.Web.mvc в вкладке «Ассамблей», но после небольшого поиска я узнал, что мне нужно посмотреть »Сборки Расширения«Вкладка, а не по умолчанию« сборки Framework ».
Лучший способ - использовать менеджер пакета Nuget.
Просто обновите следующий пакет MVC, и он должен работать.
У меня была та же проблема и не смогла найти ссылочную сборку System.Web.mvc.
Наконец узнал, и он был расположен внутри следующего местоположения.
ПРИМЕЧАНИЕ Если ваш VS был установлен в C: (иногда MVC.DLL не находится в расположении по умолчанию, о котором говорится, я имею в видуСправочные сборки«Папка, расположенная в приводе C:).)
Если это не там, это обязательно должно быть здесь:
Файлы программы (x86) microsoft asp.net asp.net mvc 2 assists system.web.mvc.dll
Итак, добавьте DLL через навигацию или вкладку «Обзор» в меню «Добавить справочную».
Вы также можете добавить это из консоли менеджера Nuget Package, что-то вроде:
Install-Package Microsoft.AspNet.Mvc -Version 4.0.20710.0 -ProjectName XXXXX
Microsoft.aspnet.mvc имеет зависимости о:
- Microsoft.aspnet.webpages (≥ 2.0.0.20710.0 && <2.1) '
- Microsoft.Web.infrastructure (≥ 1.0.0.0) ''
- Microsoft.aspnet.Razor (≥ 2.0.20710.0 && <2.1) '
... Что похоже на меня без Biggie. В нашем случае это классная библиотека, которая существует исключительно для обеспечения поддержки наших приложений MVC. Итак, мы полагаем, что это доброкачественная зависимость в худшем случае.
Я определенно предпочитаю, чтобы это указывало на сборку на файловую систему или в GAC, поскольку обновление пакета в будущем, вероятно, будет намного менее болезненным, чем опыт, у меня были ссылки на сборку GAC и файловой системы в прошлом.
У меня была такая же проблема, и вот забавная причина: я думаю, что вы ожидаете System.Web.Mvc
быть расположенным под System.Web
в списке. Но список не алфавит.
Сначала сортируйте список, а затем посмотрите рядом с System.Web
.
«Хорошо, добавляя, что XML в Web.config работает, но это не отвечает на вопрос»
Это должно быть там. По умолчанию списком «Добавить ссылки», похоже, заказывается, но это не так. Нажмите на заголовок имени и посмотрите еще раз.
Проверьте эти шаги:
- Убедитесь, что MVC установлен правильно.
- Проверьте свойство проекта и посмотрите, какова целевая структура проекта.Если для целевой платформы не установлено значение .Net Framework 4, установите его.
Примечание:если для целевой платформы установлен клиентский профиль .Net Framework 4, ссылка на MVC не будет указана в списке литературы.Вы можете найти различия между .Net Framework 4 и профилем клиента .Net Framework 4 здесь.
Клиентский профиль .NET Framework 4 - это подмножество .NET Framework 4, оптимизированное для клиентских приложений.Он предоставляет функциональные возможности для большинства клиентских приложений, включая Windows Presentation Foundation (WPF), Windows Forms, Windows Communication Foundation (WCF) и функции ClickOnce.Это обеспечивает более быстрое развертывание и меньший установочный пакет для приложений, ориентированных на клиентский профиль .NET Framework 4.
Я решил эту проблему, искал «MVC». System.Web.mvc появился в результатах поиска, несмотря на то, что он не содержится в списке.
Это изменилось для Visual Studio 2012 (я знаю, что оригинальный вопрос говорит VS2010, но заголовок все равно найдет на поиски).
При создании проекта MVC MVC VS2012 System.Web.mvc помещается в папку пакетов, которая является одноранговым для решения. Это будет ссыловаться в веб-проекте по умолчанию, и вы можете найти точный путь там).
Если вы хотите ссылаться на это в дополнительном проекте (скажите поддерживающую .dll с фильтрами или другими атрибутами), то вы можете ссылаться на него оттуда.
Я считаю, что вы найдете, что сборка 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 Element добавляет ссылку на сборку на использование во время компиляции динамического ресурса. ASP.NET автоматически связывает эту сборку на ресурс при составлении каждого модуля кода.
Он может быть установлен разделен, и он не включен в рамку, выберите вкладку «Расширение», и он существует и больше других Libs, все в порядке, не нужно использовать старые Libs и т. Д.
Если вы получили эту проблему в Visual Studio 2017, шансы вы работаете с проектом MVC 4, созданный в предыдущей версии VS с ссылочным путем, указывая на C:\Program Files (x86)\Microsoft ASP.NET
. Отказ Visual Studio 2017 больше не устанавливает этот каталог.
Мы обычно решаем это, устанавливая копию Visual Studio 2015 наряду с нашим экземпляром 2017 года, и это устанавливает необходимые библиотеки на вышеуказанном пути. Затем мы обновляем все ссылки в затронутых проектах, и мы добрым ходу.