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 2010
(32-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 尚未注册”错误