2012-12-06 35 views
0

我一直在试图与Visual Studio 2005中的SQL Server CE的工作在过去的4,连续工作5小时。但没有运气。当我运行我的应用程序时,出现以下错误:无法获得的SQL Server CE到与Visual Studio 2005和Windows CE 5.0

Can't find PInvoke DLL 'sqlceme35.dll'

我已阅读过无数的线程和文章,但无法使其工作。使用以下工具:

  • 的Windows CE 5.0的设备运行英特尔Bulverde的处理器
  • 的Windows XP 32位与Visual Studio 2005
  • 的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精简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. 复制
  6. 然后我安装 “sqlce.dev.ENU.wce5.x86.CAB”, “sqlce.repl.wce5.x86.CAB” 和 “sqlce.wce5.x86.CAB” 从 “wce500 \ X86” 目标设备上这创造了一堆的DLL文件夹中的“Microsoft SQL Server精简版”

  7. 然后,我跑到我的计划,但上述我得到了错误。错误是由行引发SqlCeEngine引擎=新的SqlCeEngine(“数据源= Test.sdf”);
  8. 我想可能是我需要的所有DLL文件夹从“微软SQL Server精简版”复制到我的应用程序文件夹的目标设备上,从那里我的程序运行的,所以我复制所有文件,但还是同样的错误。
  9. 然后我想也许我需要使用“armv4i”而不是“x86”,所以我首先安装了“sqlce.wce5.armv4i.CAB”,“sqlce.repl.wce5.armv4i.CAB”,“sqlce”。 dev.ENU.wce5.armv4i.CAB“,正如预期的那样,它不起作用。所以我再次将所有DLL复制到我的程序文件夹中,但没有运气。

我在做什么错?

回答

0

的Bulverde的,IIRC,是的PXA27x系列处理器,这肯定是一个ARM内核,而不是86,所以你必须使用ARM的二进制文件。

开始通过确保你有一个工厂复位装置(注册表将是重要的一点重置)。

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

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

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

如果仍然失败,则可能是缺少依赖关系。运行depends.exe(在桌面上)针对SQL Compact二进制文件,查看他们需要的内容并确保它们位于目标上。

+0

我跑了depends.exe“sqlceme35.dll”,它说3个DLL文件丢失。另外我看到如下图所示的CPU选项卡,它是说“x86”,尽管问题中的“sqlceme35.dll”来自“armv4i”文件夹。所以我想它是从桌面上显示这个处理器? http://i.imgur.com/nD87I.jpg – Ali

+0

是的,重要的是看看它正在寻找的DLL和条目。处理器架构应该仍然是正确的。 – ctacke

+0

以下是显示所有DLL文件(包括sqlcemeXX.dll)的设备屏幕截图,以及我正在开发的应用程序test.exe。这一次我尝试使用SQL CE 3.0,但同样的错误。我也尝试过3.5和4.0。 http://i.imgur.com/q1DC7.jpg – Ali