xymao123 2008年12月11日
Message="无法找到 PInvoke DLL“sqlceme35.dll”。
我在wince5.0的设备上想应用sqlserverce,
SqlCeConnection conn = null;
try
{
if (File.Exists("Test.sdf"))
File.Delete("Test.sdf");
SqlCeEngine engine = new SqlCeEngine("Data Source = Test.sdf");
engine.CreateDatabase();
conn = new SqlCeConnection("Data Source = Test.sdf");
conn.Open();
程序在执行到
SqlCeEngine engine = new SqlCeEngine("Data Source = Test.sdf");时,
提示错误
未处理 System.MissingMethodException
Message="无法找到 PInvoke DLL“sqlceme35.dll”。"

我在CSDN上搜了一下相同问题的解决方法:
1. 将D:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v3.0\wce500\armv4i目录下的拷贝到设备上进行安装,包括安装到SD卡和设备的windows目录
sqlce30.wce5.armv4i.CAB
sqlce30.repl.wce5.armv4i.CAB
sqlce30.dev.CHS.wce5.armv4i.CAB
2. .net环境安装D:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\2.0\v2.0\WindowsCE\wce500\armv4i\NETCFv2.wce5.armv4i.cab
3. 将D:\Program Files\Microsoft Visual Studio 8\Common7\IDE目录下所有sqlce*.dll文件拷贝到设备的windows目录和程序运行目录,
4. vs2005的项目中对System.Data.SqlServerCe是否复制到本地设置为false
5. 通过vs2005自动部署到设备
6. 将sqlserverce的版本换成3.5的版本
7. 通过vs2008自动部署.net3,sqlce3.5

几种方法都尝试过,还是没有成功,相同的程序部署到windowsmobile6的智能手机上,如果手机上安装sqlserverce3.5,程序正常运行,如果安装sqlserverce3.0,则报同样的错误。
我的开发环境是vs2005,sqlexpress2005,.net2.0,sqlserverce安装3.0,3.5两个版本,在wince的设备总是报错。

问题的原因在哪里?设备问题,.net版本问题,sqlce版本问题,还是.net版本和sqlce版本匹配问题,
请各位遇到过相同问题且已经解决的帮我看看,实在不行,就只能通过文件来处理了

...全文
3654 1 收藏 32
写回复
32 条回复

还没有回复,快来抢沙发~

发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告