В настоящее время я занимаюсь обновлением сайта с предварительного просмотра 2 ASP.NET MVC до бета-версии. Я перешел к моей последней ошибке компиляции без решения на сайте после исчерпывающего поиска. У меня есть некоторый код в Global.asax.cs, который устанавливает IOC, используя контейнер Windsor:
ControllerBuilder.Current.SetControllerFactory(typeof(WindsorControllerFactory));
Компилятор жалуется, что:
The type 'System.Web.Mvc.IControllerFactory' is defined in an assembly that is not referenced.
You must add a reference to assembly 'System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
Странно то, что на эту сборку ссылается . Я ссылаюсь на него из папки бета-сборок MVC и устанавливаю для копирования локальный. Я даже могу удалить каталог bin, перестроить, затем просмотреть сборку в отражателе и увидеть интерфейс. Я попытался удалить и повторно добавить ссылку, изменив сборки web.config и разделы пространства имен. Я даже удалил System.Web.Mvc из GAC, чтобы убедиться, что он использует правильную копию.
Во время написания этого вопроса мне пришло в голову, что, возможно, Виндзор внутренне ожидает более старую версию сборки. Я загружаю последнюю версию с MvcContrib, чтобы определить, является ли это проблемой, и выложу результат. Если это так, не должен ли номер версии сборки измениться с последней версией, чтобы сделать это очевидным?
Спасибо за чтение,
Brett