繁体   English   中英

使Microsoft.jet.oledb.4.0或microsoft.ace.oledb.12.0在64位Windows 7计算机上工作

[英]Getting Microsoft.jet.oledb.4.0 or microsoft.ace.oledb.12.0 to work on 64 bit Windows 7 machine

我有一个在Windows XP 32位计算机上构建的应用程序。 该应用程序的.exe文件在XP 32位计算机上运行没有问题。 然而; 它不会在Windows 7 64位计算机上运行。 当我尝试在Windows 7中运行它时,出现以下错误:

Microsoft.jet.oledb.4.0提供程序未在本地计算机上注册。

我读到某处Microsoft.Jet.Oledb.4.0不能在32位计算机上使用。 因此; 我将配置文件中的连接字符串更改为将数据提供程序设置为microsoft.ace.oledb.12.0。 我发表了自己的观点,并试图在Windows 7计算机上运行它。 我收到以下错误:

未在本地计算机上注册Microsoft.ace.oledb.12.0。

我的应用程序是从Visual Studio 2005-2010转换而来的,并使用c#进行了编程。

有什么建议么?

谢谢!

100%工作溶液

当您在x64机器上运行.NET应用程序时(我知道这一点),这是因为Microsoft不支持Windows 2003以外的Windows的64位版本上的JET。

那么该怎么办? 很简单,您需要确保在Configuration Manager中以“ x86”而不是“任何CPU”或“ x64”为目标编写程序集,重新构建程序集,您应该会做的很好:-)

Jet DB(MS Access,AKA Microsoft.Jet.OLEDB.4.0 )仅在32位中可用。 没有64位版本。 您必须以Win32平台为目标,或切换到另一个数据库。

UPD。 似乎已被以前的文章覆盖: Microsoft.Jet.OLEDB.4.0的提供程序未在本地计算机上注册

至于“ ACE”,您可能需要安装其他驱动程序:

默认情况下,.NET应用程序设置为以32位或64位应用程序运行,具体取决于运行时检测到的操作系统的体系结构。

但是,Microsoft.Jet.OLEDB.4.0在64位版本中不可用,并且不能由64位应用程序访问。

解决方案是在编译之前将Visual Studio中的平台类型设置为“ x86”(32位),这样,即使它在64位操作系统上运行,它也将始终作为32位应用程序运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM