Я получил ошибку, что поставщик не может быть найден в моем клиентском приложении при попытке подключиться к файлу базы данных CompactEdiction. Когда я тестировал это приложение на моей машине, где был установлен SQL Server 2008, все было в порядке.
Установлены .net (3.5 и 4.0) и sp3 (windows xp). Вы знаете, что мне не хватает, чтобы запустить его? Есть проблема с провайдерами ...
В каталоге приложений есть скопированные файлы:
System.Data.SqlServerCe.dll
System.Data.SqlServerCe.Entity.dll
sqlceca35.dll
sqlcecompact35.dll
sqlceer35EN.dll
sqlceme35.dll
sqlceoledb35.dll
sqlceqp35.dll
sqlcese35.dll
В настройках приложения у меня есть такая запись:
<configuration>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.3.5"/>
<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"/>
</DbProviderFactories>
</system.data>
ошибка:
error 0004: Could not load System.Data.SqlServerCe.Entity.dll. Reinstall SQL Server Compact
и сервер не должен быть установлен, вот требование
Если в appConfig нет записи, появляется сообщение об ошибке:
The specified store provider cannot be found in the configuration, or is not valid. ---> System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed.
at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)
at System.Data.EntityClient.EntityConnection.GetFactory(String providerString)
В строке подключения указывается:
provider=System.Data.SqlServerCe.3.5