Найдено конфликты между различными версиями одной и той же зависимой сборки. MVC3 → MVC4/EF4 → EF5

Вопрос заключается в том, как разрешать конфликты между версиями сборок в моем проекте, которые были обновлены до MVC4 и EF5?

Проблема проявляется в том, что мои контроллеры и модели могут включать System.Data.Objects, но теперь мои представления.

Я использую MVC 4, мой проект был обновлен с MVC 3.

Entity Framework - версия 5.

У меня есть контроллер, который может использовать objectcontext из System.Data.Objects.

Мои действия:   используя System.Data.Objects;   используя System.Data.Entity;

Когда я пытаюсь включить использование в форме вида System.Data.Objects, я получаю:

CS0234: Тип или имя пространства имен "Объекты" не существует в пространстве имен "System.Data" (вам не хватает ссылки на сборку?)

Я нацеливаюсь на .net 4.5

Моя сборка Отображает это сообщение: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1561,5): предупреждение MSB3247: найдены конфликты между различными версиями одной и той же зависимой сборки.

Ответ 1

Вы можете создать свое решение в диагностическом режиме, чтобы получить более подробную информацию об ошибке.

Откройте диалоговое окно "Параметры VS" ( "Инструменты" > "Параметры" ), перейдите к "Проекты и решения" node и выберите "Построить и запустить". Измените многостраничную версию сборки сборки MS Build на Diagnostic.

Посмотрите здесь.

Ответ 2

Если вы посмотрите на сообщение сборки, в нем указано, что версия .net-инфраструктуры 4.0 указана... Есть ли параметр в файле проекта или web/app.config, указывающий конфликтующую версию .net-структуры?

Вы знакомы с fuslog? вы можете настроить его для регистрации всех сборок сборки, которые .net делает во время запуска вашего приложения. Затем вы сможете увидеть подробную информацию о том, что происходит, когда. Если вы все еще не можете понять это, вы всегда можете сделать переадресацию привязки на этой .dll в файле web.config.

http://msdn.microsoft.com/en-us/library/eftw1fys.aspx - переадресация привязки

http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.71).aspx - просмотр журнала слияния

Настройте регистратор слияния и посмотрите, что такое выход. Если вы не получите ответа от этого, попробуйте перенаправление привязки (что даст вам хотя бы временное решение).

Ответ 3

В каталоге, в котором я публиковал, была папка с именем aspnet_client. Я переместил его (вместо его удаления), переиздал, и он сработал. Я не уверен, почему эта папка решила избавить меня от синей стороны.