Не удалось определить имя поставщика для поставщика factory типa> 'System.Data.SqlClient.SqlClientFactory'

Попытка запуска интеграционных тестов в проекте с использованием Entity Framework 6 привела к ошибке:

SetUp: System.NotSupportedException: невозможно определить имя поставщика для поставщика factory типа 'System.Data.SqlClient.SqlClientFactory. Убедитесь, что ADO.NET провайдер установлен или зарегистрирован в конфигурации приложения.

Но тесты на одном проекте отлично работают на нескольких машинах моих коллег, и у меня нет локальных изменений.

Попытайтесь переустановить EF, У меня нет ненужных разделов конфигурации или Glimpse и Я попытался настроить таргетинг на другую версию фреймворка, но ошибка сохраняется...

1 ответ

Оказывается, у меня есть пустой повторяющийся элемент DbProviderFactories в файлах моей платформы Framework/Framework64 machine.config, который, как представляется, был создан при установке поставщика IBM DB2.NET(?!). Дубликат node выводит machine.config неверно, поэтому проблема локализована на моей машине.

Изменение

<dbproviderfactories>
 <add name="IBM DB2 for i5/OS .NET Provider" invariant="IBM.Data.DB2.iSeries" description=".NET Framework Data Provider for i5/OS" type="IBM.Data.DB2.iSeries.iDB2Factory, IBM.Data.DB2.iSeries, Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26">
 </add></dbproviderfactories>

чтобы удалить дополнительный node:

<dbproviderfactories>
 <add name="IBM DB2 for i5/OS .NET Provider" invariant="IBM.Data.DB2.iSeries" description=".NET Framework Data Provider for i5/OS" type="IBM.Data.DB2.iSeries.iDB2Factory, IBM.Data.DB2.iSeries, Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26">
 </add></dbproviderfactories>

Устранена проблема.

licensed under cc by-sa 3.0 with attribution.