Подтвердить что ты не робот

Попытка добавления строго типизированного представления не находит классов в проекте MVC

У меня очень странная проблема. Всякий раз, когда я пытаюсь использовать диалог "Добавить вид" в ASP.NET MVC2, а затем попробуйте "Создать строго типизированное представление", выбрав "Просмотр класса данных" из раскрывающегося списка доступных классов, ни один из классов ( "модели" ) в моем проекте MVC появляются.

Очень странная часть - это все сборки, на которые ссылается мой проект MVC, даже другие проекты в решении, их классы появляются. Я попробовал очистить, перестроить, очистить папку obj, но каждый раз по какой-то причине ни один из классов моей фактической сборки MVC не появляется. Он работал отлично, но теперь этого больше нет, и я не могу думать ни о чем, что изменилось.

Кто-нибудь испытал этот вопрос раньше? Спасибо за помощь!

Изображение примера:

http://imgur.com/47itE.png

4b9b3361

Ответ 1

Выяснил это, вот решение:

Проект MVC ссылался на кучу сборок контрактов на обслуживание, которые ссылаются на "CommonServiceContractAssembly.dll" . Проект MVC также ссылался на "CommonServiceContractAssembly.dll" . Проект MVC и сборки контрактов на обслуживание были построены с использованием немного разных версий "CommonServiceContractAssembly.dll"

Когда Visual Studio 2010 отражал все ссылочные сборки, чтобы "Создать строго типизированное представление", я считаю, что он не был уверен, как обращаться с немного другой версией "CommonServiceContractAssembly.dll" , на которую ссылаются, отображать отраженные "сильно типизированные модели" возможности для любых сборок, зависящих от "CommonServiceContractAssembly.dll" .

Исправление состоит в том, чтобы фактически заставить домен приложения Visual Studio 2010 использовать правильную версию "CommonServiceContractAssembly.dll" при запуске Visual Studio 2010. Это было выполнено с помощью события Post Build, следующего как:

REM. Это необходимо для правильной работы моделей T4. копировать "$ (TargetDir)" CommonServiceContractAssembly.dll "$(DevEnvDir) PublicAssemblies\" /Y

Поэтому я копирую "CommonServiceContractAssembly.dll" , на который ссылается "везде", где Visual Studio будет его загружать. После этого все работало правильно.

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

Ответ 2

Это потому, что вы не создали свое приложение. Сначала создайте приложение, а затем сделайте представление, которое оно покажет.

Ответ 3

Пожалуйста, убедитесь, что вы отмечаете их как "Открытые" и скомпилируете их один раз перед открытием диалогового окна AddView.

Ответ 4

Некоторые типы из вашего проекта отфильтрованы этим диалогом (например, все типы, заканчивающиеся на "Контроллер", или все типы в пространстве имен System или Microsoft). Возможно, ваш проект не имеет типов, которые будут проходить через диалоговые фильтры.

Ответ 5

Перед добавлением вида просто создайте решение, а затем добавьте его, он будет работать. если он не будет работать, тогда вы можете снова заботиться обо мне, я дам вам другое решение