Microsoft.ACE.OLEDB.12.0 提供程序未注册

Posted

技术标签:

【中文标题】Microsoft.ACE.OLEDB.12.0 提供程序未注册【英文标题】:Microsoft.ACE.OLEDB.12.0 provider is not registered 【发布时间】:2011-08-24 04:35:59 【问题描述】:

我的应用程序是用C# 编写的并使用Ms-Access 2003,我希望它在64-bit Windows 安装中正常运行。我在连接字符串中将数据提供程序用作ACE.OLEDB.12.0,但它仍然给出Microsoft.ACE.OLEDB.12.0提供程序未注册的异常,尽管我已经在目标机器上安装了Microsoft Access Databse Engine 201032-bit)(作为目标机器的Office 安装是32-bit)。

我关注了以下帖子Microsoft.ACE.OLEDB.12.0 provider is not registered 以及msdn 和其他microsoft 站点中的许多其他帖子,问题就解决了,因为他们说要编译到x86。我想知道是否有另一种方法可以解决这个问题,不需要编译到x86...

【问题讨论】:

不 - 我认为没有其他强大的解决方案... 您的应用程序必须编译为 64 位吗? 【参考方案1】:

您不必为 x86 进行编译,但您需要在 64 位机器上安装 64 位 Access OLEDB 提供程序。可以在这里找到:Microsoft Access Database Engine 2010 Redistributable

【讨论】:

这不会与同一台机器上安装的 32 位 Office 冲突吗? 我试图安装它,但它说可用的Office版本是32位,因此无法安装并且安装程序退出...... @Yahia - 如果您想要 64 位支持,无论如何您都别无选择,但它应该可以工作。可能有一个技巧可以确保您可以正确安装它。请参阅此链接和有关“被动”安装技巧的备注:blog.codefluententities.com/2011/01/20/… @Simon Mourier:是的,它可以很好地与 /passive 一起安装并且运行良好!!!谢谢你的负载... @Simon Mourier:感谢您的 /passive 技巧。像魅力一样工作。【参考方案2】:

我在 64 位上遇到了同样的问题,但按照 http://social.msdn.microsoft.com/Forums/en-US/1d5c04c7-157f-4955-a14b-41d912d50a64/how-to-fix-error-the-microsoftaceoledb120-provider-is-not-registered-on-the-local-machine 的建议,我从 http://www.microsoft.com/download/en/confirmation.aspx?id=23734 安装了这些组件的 Office 2007 版本,它运行良好。

【讨论】:

以上是关于Microsoft.ACE.OLEDB.12.0 提供程序未注册的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft.ACE.OLEDB.12.0 提供程序未注册

Microsoft.Jet.OLEDB.4.0 与 Microsoft.ACE.OLEDB.12.0,我应该使用哪个?

Microsoft.ACE.OLEDB.12.0 未在 x86 上注册

Microsoft.ACE.OLEDB.12.0 尚未注册”错误

microsoft.ace.oledb.12.0 提供程序未注册

C#:使用 Microsoft.ACE.OLEDB.12.0 连接到 dbf 文件