Что вызывает "Не удалось загрузить библиотеку сжатия базы данных" и как я могу это исправить?
В компактном фреймворке.NET 3.5, работающем в Windows Mobile 5, мы видим следующее сообщение об ошибке:
Could not load database compaction library. Operation has been aborted.
at System.Data.SqlServerCe.SqlCeEngine.ProcessResults(IntPtr pError, Int32 hr)
at System.Data.SqlServerCe.SqlCeEngine.Repair(SEFIXOPTION option, String dstConnStr, RepairOption repairOption)
at System.Data.SqlServerCe.SqlCeEngine.Compact(String connectionString)
in:
SQL Server Compact ADO.NET Data Provider
Приложение выдает команду на сжатие файла базы данных SQL Server Compact и получает ответ об ошибке, описанный выше.
Сообщение об ошибке появляется периодически; иногда компактная операция завершается, а иногда регистрируется ошибка выше.
Поиск в этом сообщении об ошибке приводит к некоторым результатам, которые предполагают, что причиной является нехватка памяти (или правильный тип памяти), но эта ошибка не возникает последовательно на всех платформах устройства. Некоторые устройства Windows Mobile от определенного производителя никогда не получают эту ошибку, а устройства других производителей имеют эту ошибку чаще, чем нет.
2 ответа
На устройстве необходимо установить файл.repl cab, например: sqlce.repl.ppc.wce5.armv4i.CAB
Похоже, это происходит в результате того, что вы выполнили какую-то опцию восстановления в базе данных.
Вы пытались написать try...catch
блокировать вокруг рассматриваемой операции?
Было бы полезно увидеть, какой код на самом деле вызывает ошибку. Знание того, какой метод выдает ошибку, может очень помочь.
Это действительно больше комментарий, но он был слишком длинным, чтобы поместиться в разделе комментариев.
РЕДАКТИРОВАТЬ:
Привет Ричард,
Я не думаю, что это ваш вопрос на MSDN, не так ли? >> ССЫЛКА <<;; Это еще в 2009 году.
Я также нашел >> THIS POST <<;; на dbaspot.com, который ссылается на устройство, на котором не хватает памяти. Сколько "материала" на вашем устройстве разработки?