如何分发使用Microsoft Access数据库的应用程序

时间:2015-02-25 08:18:02

标签: .net vb.net aceoledb

我创建了一个使用Microsoft Access作为数据库的应用程序。

当我分发它时,我收到一个错误:

  

"ACE.OLEDB.12.0" provider is not registered on the local machine"

搜索后,我找到了安装两者的标准修复程序

2007 Office System Driver: Data Connectivity ComponentsMicrosoft Access Database Engine 2010 Redistribute

安装修补程序时,错误会更改为无法识别的数据库。 我发现另一个修复说使用Jet 4作为数据连接,当我创建一个快速应用程序(作为测试)时,它给出了同样的错误。

所以有人知道一种创建使用更容易分发的数据库的应用程序的方法。

1 个答案:

答案 0 :(得分:4)

Microsoft Access数据库引擎2010(ACE)有两个版本。 32位和64位。您无法在同一台计算机上安装这两个版本。 32位版本可以安装在64位操作系统的PC上。 Office 64/32安装具有相同位数的ACE。

这是您可以在客户计算机上找到的方案。 现在,您的应用程序应该适应这种情况并使用TargetCPU属性来匹配大多数客户(我假设您无法告诉您的用户卸载其Office副本以适应你的应用程序要求)

如果您的客户安装了64位操作系统和Office 64位,那么您只有一个解决方案。使用不TargetCPU = AnyCPU的{​​{1}}或纯Prefer 32bit应用创建64位应用。任何其他选项都将失败。

相反,如果您的客户没有安装Office或32位版本(无论操作系统位数如何),那么您可以使用x64TargetCPU=x86选项来构建应用程序的环境。当然,如果没有安装Office,那么您需要分发32位版本的ACE。

要考虑的其他数据库选项包括SQLiteMS Sql Server Compact EditionSQL Server LocalDB选项。在任何情况下,您都需要分发适当的库以允许您的应用程序使用这些数据库系统 为了更好地兼容已编写的代码,您应该选择一种Microsoft解决方案,但如果应用程序不大(在数据访问方面),那么您可以放心地探索SQLite路径。