无法让 SQL Server CE 与 Visual Studio 2005 和 Windows CE 5.0 一起使用

Posted

技术标签:

【中文标题】无法让 SQL Server CE 与 Visual Studio 2005 和 Windows CE 5.0 一起使用【英文标题】:Can't get SQL Server CE to work with Visual Studio 2005 and Windows CE 5.0 【发布时间】:2012-12-06 11:18:51 【问题描述】:

在过去的 4、5 个小时里,我一直在尝试让 SQL Server CE 与 Visual Studio 2005 一起工作。但没有运气。当我运行我的应用程序时,我收到以下错误:

找不到 PInvoke DLL 'sqlceme35.dll'

我已经阅读了无数关于它的主题和文章,但无法让它发挥作用。使用以下工具:

运行 Intel Bulverde 处理器的 Windows CE 5.0 设备 带有 Visual Studio 2005 的 Windows XP 32 位 SQL Server Compact 3.5

这就是我所做的。

    创建了一个新的“智能设备”项目并选择了“Windows CE 5.0” 安装了 SQL Server Compact 3.5(在 Windows XP 上),其中安装了一堆文件夹和文件 在我的项目中,我添加了对“System.Data.SqlServerCe.dll”的引用,该引用位于安装 SQL Server Compact 3.5 的文件夹内

    然后我写了几行代码如下,我从http://msdn.microsoft.com/en-us/library/aa226134(v=sql.80).aspx复制过来的

        SqlCeEngine engine = new SqlCeEngine("Data Source = Test.sdf");
        engine.CreateDatabase();
    
        conn = new SqlCeConnection("Data Source = Test.sdf");
        conn.Open();
    

    然后我从“wce500\x86”安装了“sqlce.dev.ENU.wce5.x86.CAB”、“sqlce.repl.wce5.x86.CAB”和“sqlce.wce5.x86.CAB”在“Microsoft SQL Server Compact Edition”文件夹中创建了一堆 DLL 文件的目标设备上

    然后我运行了我的程序,但出现了如上所述的错误。 SqlCeEngine engine = new SqlCeEngine("Data Source = Test.sdf"); 行抛出错误 我想我可能需要将文件夹“Microsoft SQL Server Compact Edition”中的所有 DLL 复制到运行程序的目标设备上的应用程序文件夹中,因此我复制了所有文件,但仍然出现相同的错误。 然后我想我可能需要使用“armv4i”而不是“x86”,所以我首先安装了“sqlce.wce5.armv4i.CAB”、“sqlce.repl.wce5.armv4i.CAB”、“sqlce. dev.ENU.wce5.armv4i.CAB”,正如预期的那样,它不起作用。所以我再次将所有 DLL 复制到我的程序文件夹中,但没有成功。

我做错了什么?

【问题讨论】:

【参考方案1】:

Bulverde IIRC 是 PXA27x 系列处理器,它绝对是 ARM 内核,而不是 x86,因此您必须使用 ARM 二进制文件。

首先确保您有一个恢复出厂设置的设备(注册表将是重置的重要部分)。

然后使用该文件夹中的 CAB(或直接使用二进制文件):

%PROGRAM_FILES%\Microsoft SQL Server Compact Edition\v3.5\Devices\wce500\armv4i

确保System.Data.SqlServerCe.dll 程序集在设备上(通常在您的应用程序文件夹中)。

如果仍然失败,您可能缺少依赖项。针对 SQL Compact 二进制文件运行depends.exe(在桌面上)以查看它们需要什么并确保它们在您的目标上。

【讨论】:

我为“sqlceme35.dll”运行了depends.exe,它说缺少3个DLL文件。另外,我看到 CPU 选项卡如下面的屏幕截图所示,它说的是“x86”,尽管有问题的“sqlceme35.dll”来自“armv4i”文件夹。所以我猜它正在从桌面显示这个处理器? i.imgur.com/nD87I.jpg 是的,重要的是查看它正在寻找的 DLL 和条目。不过,处理器架构应该仍然是正确的。 这是设备的屏幕截图,显示所有 DLL 文件(包括 sqlcemeXX.dll)都与我正在开发的应用程序 test.exe 一起存在。这次我尝试使用 SQL CE 3.0 但同样的错误。我也尝试过 3.5 和 4.0。 i.imgur.com/q1DC7.jpg

以上是关于无法让 SQL Server CE 与 Visual Studio 2005 和 Windows CE 5.0 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

通过 Web 服务将 SQL Server CE 与 SQL Server 2005 同步

SQL Server CE 文件位置

无法使用 SQL Server CE 4.0

无法使用自动增量插入到 SQL Server CE

Azure 网站上的 SQL Server CE

SQL CE 部署 - AppHarbor - 无法加载 SQL Server Compact 的本机组件