调试时出现“sqlceqp35.dll”错误,但运行部署代码时出错

问题描述:

在我们当前的Windows Mobile项目中,最近出现了一个调试问题。 当试图调试代码时,它会在与本地数据库的连接上的open命令上引发异常。调试时出现“sqlceqp35.dll”错误,但运行部署代码时出错

该消息是"A SQL Server Compact DLL could not be loaded. Reinstall SQL Server Compact Edition. [ DLL Name = sqlceqp35.dll ]"。 有时,这是一个未知的错误,而是参考相同的文件。

如果您在调试过程中执行二进制文件,即deployd,它在运行的设备上没有任何问题。我试过: 在设备上重新安装.net和sqlce。 更改项目中引用属性的“特定版本”。

我使用的硬件是Windows Mobile 5.0的Motorola MC70。该项目的目标平台是Windows Mobile 5.0。

关于什么可能会导致此问题的任何想法?

编辑:当我在MC75上尝试它时,我可以调试它。 MC70获得了操作系统版本:05.01.0478和MC75 05.01.0478。 我现在最好的猜测是它与操作系统版本或实际设备有关。

这可能是一个内存问题,当应用程序增加了一些相同的问题,即使没有调试时出现。

使它运行的解决方法是强制加载库,在我们的情况下,我们将以下代码添加到应用程序的开始处。

IntPtr result = LoadLibrary(Path.Combine(sqlCeInstallPath, dllName));