SQL Server CE 4.0部署问题 - 哪些文件是必需的?

时间:2012-10-31 15:51:32

标签: c# sql-server-ce-4

我正在尝试部署一个使用SQL Server CE 4.0数据库的小型Windows窗体应用程序。我不希望运行此应用程序的每个系统都必须安装SQL Server CE 4.0,所以我试图获得应用程序中包含的任何所需的DLL。

当我检查引用列表时,SQL Server CE 4.0的唯一引用是System.Data.SqlServerCe。在尝试连接数据库时,包含用于此的DLL System.Data.SqlServerCe.dll仍然会导致以下错误:

  

无法加载与版本8876的ADO.NET提供程序对应的SQL Server Compact的本机组件。安装   正确版本的SQL Server Compact。请参阅知识库文章974247   更多细节。

我已经看过一些文章谈论不同版本的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数据库中获取数据的方法)几秒后程序就会关闭。事件查看器显示以下错误:

  

错误应用程序名称:Dispatch Review Assistant.exe,版本:1.0.0.0,时间戳:0x50915d3c   错误模块名称:KERNELBASE.dll,版本:6.1.7601.17932,时间戳:0x503285c2   异常代码:0xe0434352   故障偏移:0x000000000000caed   错误进程id:0x1028   错误应用程序启动时间:0x01cdb78c10761c73   错误的应用程序路径:C:\ Users \ deLucain \ Desktop \ Release \ Dispatch Review Assistant.exe   错误模块路径:C:\ Windows \ system32 \ KERNELBASE.dll   报告ID:4e4f45e3-237f-11e2-bd76-14dae92102de

1 个答案:

答案 0 :(得分: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 文件夹位于:

%Program Files%\ Microsoft SQL Server Compact Edition \ v4.0 \ Private

也是必要的。

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