导致"Could not load database compaction library"的原因是什么,我该如何解决?



在一个运行在Windows Mobile 5上的紧凑框架。net 3.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压缩数据库文件,并收到上面的错误响应。

错误信息间歇性出现;有时压缩操作会完成,有时上面的错误会被记录。

搜索此错误消息会产生一些结果,表明内存不足(或正确类型的内存)是导致此错误的原因,但此错误并不是在所有设备平台上一致发生。某些特定制造商的Windows Mobile设备永远不会出现此错误,而其他制造商的设备则经常出现此错误。

必须在设备上安装.repl cab文件,例如:sqlce.repl.ppc.wce5.armv4i.CAB

看起来这是由于您在数据库上发布了某种修复选项而导致的。

您是否尝试过围绕有问题的操作编写try...catch块?

查看是什么代码导致了这个错误将会很有帮助。知道是什么方法抛出的错误可以帮助很多。

这实际上更像是一个注释,但是它太长了,不适合放在注释部分。

编辑:

你好理查德,

我想这不是你在MSDN上的问题吧?>>链接<<这是2009年的事了

我还发现>> THIS POST <<在dbaspot.com上引用内存不足的设备。你的开发设备上有多少"东西"?

最新更新