2009-06-02 3 views
6

Пытаясь отлаживать исходный код ASP.NET MVC 1.0, я следовал инструкциям, например these, в основном удалять ссылку на system.web.mvc из моего веб-проекта и добавлять исходный проект, который я скачал вместо этого.Отладка ASP.NET MVC-источника?

Теперь у меня есть эта проблема,

типа 'System.Web.Mvc.FormMethod' существует в обоих «C: \ Windows \ сборка \ GAC_MSIL \ System.Web.Mvc \ 1.0 .0.0__31bf3856ad364e35 \ System.Web.Mvc.dll 'и в моем AppData \ Local \ Temp \ Temporary ASP.NET Файлы \ root \ dbcbb149 \ 897fc019 \ assembly \ dl3 \ 796c00fb \ f345f2d6_abe3c901 \ System.Web.Mvc.DLL '

Я пробовал комментировать следующее из web.config

<add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

, но это даст разница ошибку

Тип «System.Web.Mvc.Controller» определяется в сборке, не ссылки. Вы должны добавить ссылку на сборку 'System.Web.Mvc, Версия = 1.0.0.0, Культура = нейтраль, PublicKeyToken = 31bf3856ad364e35'.

Может кто-то помочь в том, что происходит не так и как его исправить. Большое спасибо!

Ray.

+0

Похоже, что у вас есть копия в корзине и в GAC. У вас есть копия System.Web.Mvc в папке bin (убедитесь, что вы просматриваете все файлы) –

+0

Я ссылаюсь на исходный проект, поэтому после компиляции в моем ящике будет копия. –

ответ

7

Нет необходимости удалять ASP.NET MVC из GAC! (или любые любые <assemblyBinding> s) Просто следуйте за "Using the ASP.NET MVC source code to debug your app" статья шаг за шагом.

Есть несколько вопросов, подобных вашему:

+1

. Я вижу, где я пропустил, ваша вторая ссылка помогла, <страница должна быть нулевой. Сначала я пошел за учебником, но я думаю, что он упоминал только один атрибут в теге

1

Являются ли сборки system.web.mvc в GAC? вам может потребоваться удалить их ... это, конечно, может испортить будущие проекты, поскольку шаблоны проектов, скорее всего, предполагают, что они находятся в gac.

Вы также можете попробовать использовать функцию <assemblyBinding> как described here, чтобы указать материал mvc на версию, в которой вы работаете.

+0

Да, я установил mvc с помощью Web PI, так что он находится в GAC. Есть ли более простой способ решить эту проблему. Я действительно не хочу удалить его из GAC или удалить его. –

1

Предполагая, что полное имя сборки для той, с которой вы связываетесь, отличается от той, что находится в GAC, используйте <QualifyAssembly> element и укажите, на какую сборку вы на самом деле ссылаетесь. Если нет, измените свой локальный источник, чтобы изменить сборку MVC, которую вы создаете, на 1.0.0.1, так что она отличается.

Редактировать: Дважды проверьте, как вы связаны. Это сработало для меня.

  1. удален ссылка system.web.mvc в моем проекте.
  2. Добавлен проект System.Web.Mvc из источника.
  3. Прокомментируйте ссылку System.Web.Mvc в файле web.config моего проекта.
  4. изменен System.we.b.mvc's /Views/Web.Config, как указано в руководстве.
  5. Ran безупречно.
+1

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

+0

См. Ответ Ричарда, и вам, вероятно, придется обновлять информацию о сборке для проекта mvc, чтобы версия отличалась от версии в GAC. – hometoast

+0

В соответствии с статьей Codeville убедитесь, что ссылка на ваш проект на system.web.mvc установлена ​​«Копировать локальную» в «true» – hometoast

0

для секции квалифицируется сборки вы хотите что-то вроде этого (мы делаем это для сборки SQLite):

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <qualifyAssembly partialName="System.Data.SQLite" fullName="System.Data.SQLite, Version=1.0.60.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 
    </assemblyBinding> 
    </runtime> 
0

Посмотрите на эту статью для полного руководства о том, как setup MVC source.

Есть два файла web.config, которые необходимо обновить. Один из них находится в папке проекта MVC, а один - в папке «Представления». Вероятно, вы забыли обновить последнее. В противном случае, следуя вышеупомянутой статье, следует это сделать.

+0

Читать и следовать за ней, web.config в моем представлении отличается от той, которая указана в статье –

0

Немного более полная версия Стива Sandersons инструкции can be found here.

В нем объясняется, как вы можете включить MVC Futures в свою отладку.

Смежные вопросы