6

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

当我查看参考列表时,SQL Server CE 4.0 的唯一参考是System.Data.SqlServerCe. System.Data.SqlServerCe.dll在尝试连接到数据库时,包括 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

4

1 回答 1

4

在对 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 后,我们的问题得到了解决。

于 2013-02-01T10:47:05.737 回答