0

我有 C# 和 MS Access DB(.accdb) 中的桌面应用程序

我已经安装了“Ms Access Engine”,但我面临“错误:'Microsoft.Ace.OLEDB.12.0' 提供程序未在本地计算机上注册”错误。

4

1 回答 1

0

您需要检查的第一件事是您的应用程序的构建配置。

  • 如果您已经在 x86 平台下构建了项目,那么为了解决您的问题,您应该在您的机器上安装以下软件包:

    1. 要使用“Microsoft.ACE.OLEDB.12.0”提供程序,您必须先 安装 Microsoft Access Database Engine 2010 Redistributable ,此安装可在以下网址获得:http: //www.microsoft.com/download/en/details.aspx ?id=13255

      安装完成后,尝试运行您的应用程序,如果这很好地解决了问题,如果没有,请继续执行步骤 2。

    2. 下一步是一个无法解释的解决方法,它适用于 Office 2010,即使它是 Office 2007 的数据连接组件。我不太确定为什么会这样,但它确实有效,并且已被证明在几乎所有情况下都有效。您需要安装 2007 Office System 驱动程序:数据连接组件,此安装位于:http: //www.microsoft.com/download/en/confirmation.aspx?id=23734

      安装完成后,尝试运行您的应用程序,这应该可以解决问题。

  • 如果您尝试运行在 x64 或 AnyCPU 平台下构建的应用程序,我建议您首先验证它在 x86 平台下是否按预期运行。如果它不在该 x86 平台下运行,请执行第一部分中的步骤并验证它是否按预期运行。

    我确实读到了包括 OLEDB 数据库驱动程序在内的 MS Access 驱动程序只能在 x86 平台下工作,并且在 x64 或 AnyCPU 平台下不兼容。但这似乎是不真实的。我在构建 x86 时验证了我的应用程序正在运行,然后我使用被动标志安装了 Access 数据库引擎。

    1. 首先在本地下载文件你可以在这里下载安装:http: //www.microsoft.com/en-us/download/details.aspx?id=13255
    2. 使用带有“/被动”标志的命令提示符进行安装。 在命令提示符下运行以下命令:'AccessDatabaseEngine_x64.exe /passive'

    在这两个步骤之后,我设法在 x64 或 AnyCPU 构建配置中运行我的应用程序。这似乎解决了我的问题。

注意:步骤的顺序似乎有所不同,因此请遵循。

于 2015-09-24T08:36:21.930 回答