C# 已将项目从VS2008转换为VS2013,无法再使用Microsoft.Jet.OLEDB.4.0或Microsoft.ACE.OLEDB.12.0提供程序

C# 已将项目从VS2008转换为VS2013,无法再使用Microsoft.Jet.OLEDB.4.0或Microsoft.ACE.OLEDB.12.0提供程序,c#,.net,visual-studio-2013,C#,.net,Visual Studio 2013,我有一个项目是在VS2008中创建的,最近更新到VS2013。我试图使用Microsoft.JET.OLEDB.4.0提供程序连接到MS Excel文件,但它抛出错误: “Microsoft.Jet.OLEDB.4.0”提供程序未在本地服务器上注册 机器。“**”(当我使用 Microsoft.ACE.OLEDB.12.0提供程序,但用ACE替换JET除外 参考) 然而,当我在VS2013中创建一个全新的项目并尝试使用使用这两个提供者的完全相同的代码时,它工作得非常好 我运行的是64位Windo

我有一个项目是在VS2008中创建的,最近更新到VS2013。我试图使用Microsoft.JET.OLEDB.4.0提供程序连接到MS Excel文件,但它抛出错误:

“Microsoft.Jet.OLEDB.4.0”提供程序未在本地服务器上注册 机器。“**”(当我使用 Microsoft.ACE.OLEDB.12.0提供程序,但用ACE替换JET除外 参考)

然而,当我在VS2013中创建一个全新的项目并尝试使用使用这两个提供者的完全相同的代码时,它工作得非常好

我运行的是64位Windows 7,Office 32位,Visual Studio 2013终极64位。你知道在VS2013中创建的新项目和从2008年转换到2013年的项目之间有什么区别吗


我所能找到的一切都是为了将应用程序配置平台设置为x86,但当我这样做时,它会导致我的项目在构建时出错。我当然可以提供任何可能有助于帮助的代码片段。

64位环境中不支持Microsoft.Jet.OLEDB.4.0提供程序

下面是我找到的几个链接之一,这些链接基本上解释了相同的信息


您需要下载并安装64位版本的Microsoft Access数据库引擎2010


您可以从此处下载它:

JET的64位版本不存在。您应该以32位模式显式运行代码。我已经尝试了JET和ACE。JET在VS2013中创建新应用程序时可以工作,但在以前创建的应用程序中不能工作……如果您运行的应用程序带有JET引擎,我必须假设它是一个32位应用程序,在VS2013中运行哇,不是本机64位应用程序。你无法将32位库加载到64位可执行文件中。你是对的,我们使用的是在哇下运行的32位应用程序,它不是本机64位应用程序。我将尝试将其转换为64位,然后看看会发生什么。谢谢。因此,我尝试转换为64位,但没有帮助。如果我切换,会有一些有趣的事情发生从IISExpress到本地IIS(IIS 7)它停止工作。如果我将其切换回IISExpress,它将再次开始工作。请记住,旧的4.0 JET引擎将无法在64位环境中运行。我想这可能是您所处的循环;有些东西可以工作,但它可以工作,因为(不知何故)它实际上是以32位应用程序的形式运行的;将其转换为64位会失败,因为驱动程序无法在64位模式下工作。如果您处于64位世界,则需要移动到64位Access数据库驱动程序。这不会加载,因为它是32位版本的Excel。