Найдено конфликты между различными версиями одной и той же зависимой сборки. 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. Я переместил его (вместо его удаления), переиздал, и он сработал. Я не уверен, почему эта папка решила избавить меня от синей стороны.