Конфликт ASP.NET MVC 2 System.Web.Mvc.dll

Я установил ASP.NET MVC 2 RC и открыл «пример проекта» по умолчанию, но получаю следующую ошибку:

Сообщение об ошибке парсера: тип System.Web.Mvc.ViewMasterPage неоднозначен: он мог происходить из сборки C: \ WINDOWS \ assembly \ GAC_MSIL \ System.Web.Mvc \ 2.0.0.0__31bf3856ad364e35 \ System.Web.Mvc. dll 'или из сборки' C: \ Documents and Settings \ sfent \ My Documents \ Visual Studio 2008 \ Projects \ MvcApplication1 \ MvcApplication1 \ bin \ System.Web.Mvc.DLL '. Пожалуйста, укажите сборку явно в имени типа.

Похоже, это конфликт между dll GAC и dll, созданной и помещенной в каталог bin (который, как я думал, должен был использоваться вместо версии GAC)

Я искал эту проблему в Google и обнаружил похожие проблемы, но связанные с неправильным пространством имен. Это неизмененный пример приложения, которое поставляется вместе с платформой MVC.

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

Все предложения приветствуются.


person Fenton    schedule 18.01.2010    source источник


Ответы (3)


Я получил эту ошибку, и в моем случае она решилась довольно легко.

Я создал новую главную страницу в своей папке Views, но незаметно для меня, она пришла с кодом и дизайнером, что, конечно, вам не нужно с MVC2. Все это было построено, но при запуске я получил сообщение об ошибке «Сообщение об ошибке парсера: тип System.Web.Mvc.ViewMasterPage» неоднозначен: ... ».

Чтобы исправить это, я удалил файлы кода программной части и дизайнера для моей новой главной страницы, и ошибка исчезла.

person Ralph Lavelle    schedule 10.04.2011
comment
У +1 была такая же проблема, и @Rafe здесь назвал ее. Исправлено удалением .cs и файлов дизайнера для главной страницы, повторная установка не требуется. Я думаю, это тоже следует отметить как ответ - person Ciarán Bruen; 27.06.2011

проблема может заключаться в том, что ссылка в вашем проекте все еще указывает на старую версию dll (v1.0). Удалите ссылку и добавьте новую в версию (v2.0).

Вы также найдете эту подсказку в примечаниях к выпуску MVC2 RC:

"Откройте проект с помощью Visual Studio и в обозревателе решений разверните узел" Ссылки ". Удалите ссылку на System.Web.Mvc (которая указывает на сборку версии 1.0). Добавьте ссылку на System.Web.Mvc (v2.0.0 .0) ".

Ура, Дамрод

person Damrod    schedule 18.01.2010
comment
Привет, Дамрод, спасибо за подсказку - у меня никогда не было другой реализации MVC на этой машине, так что в данном случае это не проблема. Ваше здоровье. - person Fenton; 19.01.2010
comment
Эта проблема по-прежнему сохраняется в ASP .NET MVC 2 RTM для Visual Studio 2008. Та же ошибка совершается и в автоматически сгенерированном проекте модульного теста. - person Jonas Van der Aa; 22.04.2010

Ваш проект ссылается на v1 и v2 фреймворка? Кроме того, почему бы не удалить соответствующую DLL, которая была скопирована локально?

person Chris Arnold    schedule 18.01.2010
comment
DLL создается в каталоге bin автоматически при сборке проекта. Я ссылаюсь только на v2, а на машине есть только v2. - person Fenton; 18.01.2010
comment
@Sohnee: вы можете указать, что сборки, на которые есть ссылки, не копируются в папку bin (щелкните правой кнопкой мыши ссылку и выберите свойства). - person Richard; 18.01.2010
comment
Я думал, что идея заключалась в том, что вам нужна локальная dll в папке bin для развертывания на MVC, а не на установленном хостинге? Я что-то упускаю. - person Fenton; 18.01.2010