2013-06-11 3 views
0

Наше программное обеспечение работает как надстройка для Autodesk Inventor. Это означает, что наше приложение (состоящее из библиотеки DLL) полностью отделено от EXE.Entity Framework и закрытое развертывание SQL CE для DLL

Проблема заключается в том, что Entity Framework пытается загрузить поставщика SQL CE, который находится в частном порядке рядом с остальными библиотеками DLL в нашем приложении. Я получаю следующее сообщение об ошибке при запуске приложения на компьютере, на котором не был установлен SQL CE:

System.ArgumentException: Unable to find the requested .Net Framework Data Provider. It may not be installed. 
at System.Data.Entity.Infrastructure.SqlCeConnectionFactory.CreateConnection(String nameOrConnectionString) 
at System.Data.Entity.Internal.LazyInternalConnection.Initialize() 
at System.Data.Entity.Internal.LazyInternalConnection.get_ProviderName() 
at System.Data.Entity.Internal.LazyInternalContext.InitializeContext() 
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) 
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() 
at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext() 
at ... 

Если скопировать все файлы установки SQL CE в бункерном папке Inventor (рядом с основной EXE) , все работает отлично, но это не вариант.

Я уже изучил несколько тем, предлагая изменить app.config, указав другого поставщика. Все они аналогичны this и that. Но в моем случае это не работает. Модификация app.config не позволяет мне указать местоположение провайдера, и даже если это произойдет, изменение конфигурации не является вариантом (если только у меня не может быть отдельная конфигурация).

Возможно ли это? Я хотел бы указать расположение папки для установки, поэтому Entity Framework может искать там поставщика SQL CE.

ответ

0

Я думаю, что это будет невозможно, вы должны либо обновить основной файл .exe с помощью регистрации поставщика, либо установить SQL CE MSI.

Смежные вопросы