Не удалось определить имя поставщика для фабрики поставщиков типа > ' System.Данные.В sqlclient.SqlClientFactory'
попытка запуска интеграционных тестов в проекте с использованием Entity Framework 6 привела к ошибке:
Настройки : Система.NotSupportedException: не удалось определить имя поставщика для фабрики поставщика типа - Система.Данные.В sqlclient.SqlClientFactory'. Убедитесь, что ADO.NET поставщик устанавливается или регистрируется в конфигурации приложения.
но тесты на одном и том же проекте отлично работают на нескольких машинах моих коллег и У меня нет локальных изменений.
предприняли попытку переустановки EF,у меня нет ненужных разделов конфигурации или взгляд и Я пробовал таргетинг на другую версию фреймворка но ошибка сохраняется...
1 ответов
оказывается, у меня есть пустой, дубликат DbProviderFactories
элемент в обеих моих рамках / Framework64 машины.config файлы, которые, как представляется, были созданы при установке поставщика IBM DB2 .NET (?!). Дублирующий узел отображает машины.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 name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/><add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
</DbProviderFactories>
<DbProviderFactories/>
чтобы удалить лишний узел:
<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 name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/><add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
</DbProviderFactories>
решен вопрос.