Почему я не могу использовать функцию «Добавить вид» VS2010 в своем приложении MVC? - PullRequest
2 голосов
/ 18 февраля 2011

Это странно,

У меня есть решение с двумя проектами ...

Genesis.Domain - это библиотека классов, в которой есть хранилище вit.

Genesis_0_02 - Имеет фактические контроллеры MVC, представления и т. д., и это запускаемый проект

Я нахожусь в процессе изменения хранилища ипроект MVC.Мне удалось добавить пару представлений, но затем автоматическая генерация представлений (щелчок правой кнопкой мыши + «Добавить представление») перестала работать.

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

C:\pathto\CodeTemplates\AddView\Empty.tt(-1,-1): error : An exception was thrown 
while running the transformation code. The process cannot continue. The following
exception was thrown:
System.IO.FileNotFoundException: Could not load file or assembly 'Genesis.Domain,
Version=1.0.0.0, Culture Neutral, etc.etc.' or one of its dependencies. The system
cannot find the file specified.
File name: 'Genesis.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'

Затем следует трассировка стека, которую я не могу скопировать и вставить.

Что может вызвать это?На Genesis.Domain ссылаются и ссылаются на протяжении всей разработки.Проект / решение прекрасно компилируется и работает нормально.

Я могу создавать представления, используя модели / классы из пространства имен Genesis_0_02.Но не из пространства имен Genesis.Domain.(Даже если классы Genesis.Domain отображаются в списке.)

Кроме того, в списке классов «Добавить представление» появились необычные классы.они выглядят так:

Genesis_0_02.Controllers.AdminMemberController+<>c__DisplayClass8+<>c__DisplayClasse>

Я понятия не имею, откуда они берутся.

Что может быть причиной этого?Как заставить функцию «Добавить вид» снова работать?

Редактировать

Кстати: я могу вручную создавать новые виды, и они работают.

Ответы [ 3 ]

1 голос
/ 02 декабря 2011

У меня была такая же проблема.Коллега на работе решил проблему путем отладки шаблона.Он обнаружил, что VS2010 ВСЕГДА искал dll в локальной папке, в нашем случае это было:

"C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \"

Как только мы создали папку в этом месте, мы поместили Dll и ее зависимости в эту папку, и ошибка исчезла.

Кажется, это определенная ошибка в VS2010.

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

0 голосов
/ 26 февраля 2011

Это поведение очень странное. Я видел странных для VS2008.

Попробуйте пару вещей, как показано ниже

1] Создайте новый веб-проект MVC и добавьте ссылку на - Genesis.Domain. и посмотрите, работает ли на нем Add View from controller.

Если да, то проверьте конфигурацию ниже в файле web.config (который находится в папке Under Views) в вашем рабочем проекте - особенно

PageParserFiltertype

<pages
        validateRequest="false"
        pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <controls>
        <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      </controls>
    </pages>

Если нет Затем попробуйте переустановить Framework и VS2010 MVC 2/3 на компьютере разработчика.

Также вы можете использовать ссылку ниже http://bradwilson.typepad.com/blog/2010/03/diagnosing-aspnet-mvc-problems.html

Удачи!

0 голосов
/ 18 февраля 2011

Похоже, что ссылка на ваш проект библиотеки классов была каким-то образом перепутана. Вы пытались удалить проект библиотеки классов из своего решения, а затем повторно добавить проект в решение?

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

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