2012-10-31 37 views
6

我正在尝试部署使用SQL Server CE 4.0数据库的小型Windows窗体应用程序。我不希望每个运行此应用程序的系统都必须安装SQL Server CE 4.0,因此我试图获取应用程序中包含的任何必需的DLL。SQL Server CE 4.0部署问题 - 哪些文件是必需的?

当我检查参考列表时,SQL Server CE 4.0的唯一参考是System.Data.SqlServerCe。包括DLL为,System.Data.SqlServerCe.dll,尝试连接到数据库时仍然会导致以下错误:

Unable to load the native components of SQL Server Compact corresponding to the ADO.NET provider of version 8876. Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details.

我已经看到了一些文章谈到这个不同版本的SQL Server CE的,但它们上市据我所知,其他版本的DLL。应用程序将运行的系统应该至少都具有安装了.NET 4.0的Windows 7,如果这有所帮助的话。

我想就设在这里添加的文件中所示的步骤中的链接:http://erikej.blogspot.com/2011/02/using-sql-server-compact-40-with.html

与这些文件包含在构建,程序编译没有任何错误,但是当一个备用系统上运行的GUI从不出现(公共Form1()的一部分包含一个从SQL CE数据库中获取数据的方法),程序在几秒钟后关闭。事件查看器显示此错误:

Faulting application name: Dispatch Review Assistant.exe, version: 1.0.0.0, time stamp: 0x50915d3c Faulting module name: KERNELBASE.dll, version: 6.1.7601.17932, time stamp: 0x503285c2 Exception code: 0xe0434352 Fault offset: 0x000000000000caed Faulting process id: 0x1028 Faulting application start time: 0x01cdb78c10761c73 Faulting application path: C:\Users\deLucain\Desktop\Release\Dispatch Review Assistant.exe Faulting module path: C:\Windows\system32\KERNELBASE.dll Report Id: 4e4f45e3-237f-11e2-bd76-14dae92102de

回答

3

我们有相同的错误消息显示了做私人部署时(即包括应用程序文件夹库)的SQLCE 4.0应用程序。

在添加对我们项目的引用时,我们根据文档添加了x64和x86文件夹(以及相关的dll)。

在这一点上,我们得到了错误:

Unable to load the native components of SQL Server Compact corresponding to the ADO.NET provider of version 8876. Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details.

在我们的环境中,我们发现,AMD64文件夹下找到:

%程序Files%\ Microsoft SQL Server的Compact Edition \ v4.0 \ Private

也是需要的。

将其添加到项目中并引用包含的dll后,我们的问题得到解决。