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

时间:2012-12-06 11:18:51

标签: visual-studio sql-server-ce windows-ce

过去4小时,我一直在努力使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

这就是我所做的。

  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”和“sqlce.wce5.x86.CAB”在目标设备上,在“Microsoft SQL Server Compact Edition”文件夹中创建了一堆DLL文件

  6. 然后我运行了我的程序但是我得到了如上所述的错误。行 SqlCeEngine engine = new SqlCeEngine(“Data Source = Test.sdf”);
  7. 引发错误
  8. 我想我可能需要将文件夹“Microsoft SQL Server Compact Edition”中的所有DLL复制到我的程序运行所在的目标设备上的应用程序文件夹中,所以我复制了所有文件,但仍然是同样的错误。
  9. 然后我想我可能需要使用“armv4i”而不是“x86”所以我首先安装了“sqlce.wce5.armv4i.CAB”,“sqlce.repl.wce5.armv4i.CAB”,“sqlce。 dev.ENU.wce5.armv4i.CAB“并且如预期的那样无效。所以我再次将所有DLL复制到我的程序文件夹中,但没有运气。
  10. 我做错了什么?

1 个答案:

答案 0 :(得分:0)

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(在桌面上)以查看它们需要什么,并确保它们在您的目标上。