Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ';微软.ACE.OLEDB.12.0';提供程序未在64位计算机中的本地计算机上注册_C#_Windows - Fatal编程技术网

C# ';微软.ACE.OLEDB.12.0';提供程序未在64位计算机中的本地计算机上注册

C# ';微软.ACE.OLEDB.12.0';提供程序未在64位计算机中的本地计算机上注册,c#,windows,C#,Windows,我在Windows应用程序中工作。我正在从Excel读取一个值并更新到数据库中。 我的代码是 string Con_Str = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";"; 它在我的本地工作很好,我有一台32位的机器。我在64位机器的服务器上运行了exe。我得

我在Windows应用程序中工作。我正在从Excel读取一个值并更新到数据库中。 我的代码是

 string Con_Str = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath +
                         ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";";
它在我的本地工作很好,我有一台32位的机器。我在64位机器的服务器上运行了exe。我得到的错误如下

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
我已经从这个链接下载了最新的


但我还是明白了这个问题。如何修复此问题。

您使用的是
Microsoft.ACE.OLEDB.12.0(简称ADE)。这意味着您需要在目标机器上安装适当的位。构建应用程序时选择的体系结构使这一点变得复杂

您为任何CPU构建:

Install ADE 32bit on 32bit target machine
Install ADE 64bit on 64bit target machine
您为x86构建

Install ADE 32bit on 32bit or 64bit target machine.

如您所见,最简单的方法是编译x86体系结构的应用程序。

您可能需要安装ADE所需的最新版本。试试这个。在上面的链接中,您应该看到两种不同的下载。一个32位,一个64位。@sarooptrivedi:我已经试过了,但是没有用。我还是得到了同样的结果error@ShaiJET4.0对于64位不存在我的机器是32位的..我应该在我的机器中安装ADE 32位并构建应用程序,我应该在服务器中安装ADE 64位..像这样我应该做…平台目标:ANYCPU..是否Jet 4.0是最新的吗?正如我所说。您为任何CPU构建,因此在安装了ADE 32位的开发机器(32位操作系统)中,一切正常。在64位机器上安装(AnyCPU)应用程序时,需要64位版本的ADE,但找不到。因此,请在服务器上安装64位ADE。您使用的是ADE而不是JET,因此不需要JET4.0。而且它不能被为任何CPU编译的应用程序在64位计算机上使用,因为JET只有32位。但我仍然收到相同的错误:“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。