Buildserver не может найти Entity Framework Sql Provider

cruisecontrol.net entity-framework-6 msbuild mstest

Вопрос

Мы находимся в процессе перехода от Entity Framework 4 к Entity Framework 6. Менеджер пакетов выполнил свою работу, и решение выполнило свои тесты без заминок.

Однако на сервере сборки мы получаем следующее сообщение об ошибке, запускающее тесты: метод инициализации xxx.SetUp выбрал исключение. System.InvalidOperationException:

Тип поставщика Entity Framework «System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer», зарегистрированный в конфигурационном файле приложения для поставщика ADO.NET с инвариантным именем «System.Data.SqlClient», не может быть загружен. Убедитесь, что используется имя для сборки, и что сборка доступна для запущенного приложения. Дополнительную информацию см. На странице http://go.microsoft.com/fwlink/?LinkId=260882 .

Если мы открываем решение локально на сервере сборки, там, где установлена ​​Visual Studio, тестовый запуск выполняется без ошибок.

Мы используем Cruise Control .Net в сочетании с SVN в качестве инструмента для нашей непрерывной интеграции. Ms Build используется для сборки решения, а тесты выполняются с помощью Ms Test.

Кто-нибудь сталкивался с подобными проблемами или имел какие-либо мысли о решении?

Принятый ответ

Это действительно отстой MS. Но, к счастью, какой-то лучший программист, чем у меня была такая же проблема, и сделал отличный пост: http://robsneuron.blogspot.nl/2013/11/entity-framework-upgrade-to-6.html

Добавление этой строки в наш конструктор DbContext устраняет проблему:

var обеспечиваетDLLIsCopied = System.Data.Entity.SqlServer.SqlProviderServices.Instance;

Переменная никогда не используется, не нужна при использовании VS для сборки, только там, чтобы убедиться, что Ms Build выполняет свою работу ...




Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему