Я пытался настроить ASP.NET MVC 2 RTM Source для использования с моим приложением, чтобы при отладке я мог выполнять такие действия, как привязка модели. Однако я не смог заставить его работать - Я получаю сообщения об ошибках вроде:
The type 'System.Web.Mvc.Controller' is defined in an assembly that is not referenced.
You must add a reference to assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35'.
The type 'System.Web.Mvc.Async.AsyncControllerActionInvoker' is defined in an assembly that is not referenced.
You must add a reference to assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35'.
Etc ...
Я следовал инструкциям в Howto Стива Сандерсона (для MVC1), но, возможно, есть другие способы заставить его работать в MVC2?
Шаги, которые я предпринял до сих пор:
- Удалены ссылки на GAC на основе
System.Web.Mvc dll
из всех моих проектов.
- Добавлен источник MVC в качестве проекта в решение.
- Добавлены ссылки на проект System.Web.Mvc в каждом из моих проектов.
- Закомментирован элемент
<add assembly="System.Web.Mvc...
в разделе <compilation><assemblies>
корня web.config
- Закомментировал элемент
<add assembly="System.Web.Mvc...
в разделе web.config
в папке Views
(и в папках Views
каждой из областей)
- Найти / заменить любую из ссылок на
System.Web.Mvc, Version=2.0.0.0
и заменить их PublicKeyToken
значением на null
(было 31bf3856ad364e35)
Итак, вопросы:
- Кто-нибудь еще получил это работает? (предположительно да!)
- Откуда приходят
PublicKeyToken
цифры в ошибках?
- Есть некоторые другие ссылки на этот же
PublicKeyToken
(31bf3856ad364e35) для других dll в web.config
(например, System.Web.Extensions
), это уместно?
- Есть идеи, что я делаю не так ?! Шаги, которые я пропустил?
Спасибо!
UPDATE:
В ответ на вопросы Сидни, вот дополнительная информация:
1) Текущий узел сборок из web.config:
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
2) Да, я использую MVC Futures, но этот проект также встроен в мое решение, и я ссылался на него, чтобы использовать System.Web.Mvc в решении.
3) Я использую несколько нестандартных ссылок. Скорее скриншот, я перечислю их здесь:
Autofac
Autofac.Integration.Web
Autofac.Integration.Web.Mvc
Elmah
FluentValidation
FluentValidation.Mvc
log4net
MvcContrib
MySql.Data
NHibernate
MvcFutures