Я использую Entity Framework 4 в настольном приложении с SQL Compact. Я хочу использовать личную установку SQL Compact с моим приложением, чтобы мой установщик мог установить SQL Compact без предоставления пользователю второй установки. Он также избегает проблем с управлением версиями по дороге.
Моя машина разработки имеет SQL Compact 3.5 SP1, установленную как общедоступная, поэтому мое приложение отлично работает там, как и следовало ожидать. Но он не работает на моей тестовой машине, на которой не установлен SQL Compact. Я получаю эту ошибку:
The specified store provider cannot be found in the configuration, or is not valid.
Я знаю, что некоторые люди испытывали трудности с частными установками SQL Compact, но Я использовал их некоторое время, и мне они очень нравятся. К сожалению, мой обычный подход к установке не работает. Я проверил номера версий в своих файлах SQL CE, и все они 3.8.8078.0, которая является версией SP2 RC.
Вот файлы, которые я включил в свою личную установку:
- sqlcecompact35.dll
- sqlceer35EN.dll
- sqlceme35.dll
- sqlceqp35.dll
- sqlcese35.dll
- System.Data.SqlServerCe.dll
- System.Data.SqlServerCe.Entity.dll
Я добавил ссылку на System.Data.SqlServerCe в мой проект, и я подтвердил, что все перечисленные выше файлы копируются в папку приложения на установочной машине.
Вот код, который я использую для настройки EntityConnectionStringBuilder при открытии файла SQL Compact:
var sqlCompactConnectionString = string.Format("Data Source={0}", filePath);
// Set Builder properties
builder.Metadata = string.Format("res://*/{0}.csdl|res://*/{0}.ssdl|res://*/{0}.msl", edmName);
builder.Provider = "System.Data.SqlServerCe.3.5";
builder.ProviderConnectionString = sqlCompactConnectionString;
var edmConnectionString = builder.ToString();
Мне не хватает файла? Не хватает ли параметра конфигурации, необходимого для того, чтобы сообщить Entity Framework, где найти мои SQL Compact DLL? Любые другие предложения, почему EF не находит мои SQL Compact DLL на установочной машине? Благодарим за помощь.