无法让 SQL Server CE 与 Visual Studio 2005 和 Windows CE 5.0 配合使用



在过去的4.5个小时里,我一直在努力使SQL Server CE与Visual Studio 2005协同工作。但没有运气。当我运行我的应用程序时,我得到以下错误:

找不到PInvoke DLL"sqlcem35.DLL">

我读过无数关于它的线程和文章,但无法使它发挥作用。使用以下工具:

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

这是我所做的。

  1. 创建了一个新的"智能设备"项目并选择了"Windows CE 5.0">
  2. 已安装SQL Server Compact 3.5(在Windows XP上),它安装了一堆文件夹和文件
  3. 在我的项目中,我添加了对"System.Data.SqlServerCe.dll"的引用,该引用位于安装SQL Server Compact 3.5的文件夹中
  4. 然后我写了几行代码,如下所示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();
    
  5. 然后,我在目标设备上安装了"wce500\x86"中的"sqlce.dev.ENU.wce5.x86.CAB"、"sqlce.repl.wce5.x86.CAB"one_answers"sqlce.wce5.x86.CAB",这些文件在文件夹"Microsoft SQL Server Compact Edition"中创建了一堆DLL文件

  6. 然后我运行了我的程序,但我得到了如上所述的错误。错误由以下行引发:SqlCeEngine engine=new SqlCeEngine("Data Source=Test.sdf")
  7. 我想我可能需要将文件夹"Microsoft SQL Server Compact Edition"中的所有DLL复制到目标设备上运行程序的应用程序文件夹中,这样我就复制了所有文件,但仍然存在相同的错误
  8. 然后我想我可能需要使用"armv4i"而不是"x86",所以我首先安装了"sqlce.wce5.armv4i.CAB"、"sqlce.repl.wce5.arm v4i.CAB"、"sqlce.dev.ENU.wce5.arm v4i.CAB",但不出所料,它没有工作。所以我再次将所有DLL复制到我的程序文件夹中,但没有成功

我做错了什么?

Bulverde,IIRC,是PXA27x系列处理器,它肯定是ARM核心,而不是x86,所以您必须使用ARM二进制文件。

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

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

%PROGRAM_FILES%Microsoft SQL Server Compact Editionv3.5Deviceswce500armv4i

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

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

最新更新