在哪里/如何下载(和安装)适用于Windows 8,64位的Microsoft.Jet.OLEDB.4.0?

Cla*_*ols 25 .net windows-8

我有一个使用Jet OLEDB 4.0的32位.net 2.0应用程序.

它在Windows 8 32位上运行fin,但不在64位上运行fin.在64位我得到一个错误:

'Microsoft.Jet.OLEDB.4.0'提供程序未在本地计算机上注册.在System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr,DataSourceWrapper&datasrcWrapper)

我知道你不能使用64位EXE的数据库(驱动程序).但是,我没有读到任何关于它不使用32位exe的内容.

我尝试了什么:

  1. 安装MS Access数据库引擎2010 32位(并重新启动)
  2. 验证msjet40.dll位于"C:\ Windows\SysWOW64\msjet40.dll"目录中,并使用RegSvr32注册.

所以我认为(希望)如果我可以安装数据库支持它就会起作用.

问题是,我找不到任何下载它的地方.

fvu*_*fvu 24

在现代Windows上,此驱动程序不再可用,但您可以在MS站点上以Microsoft Access数据库引擎2010 Redistributable的形式下载.如果您的应用程序是32位,请确保下载并安装32位变体,因为据我所知,32位和64位变体不能共存.

根据您的应用程序如何找到其数据库驱动程序,这可能就是所需要的.但是,如果您使用UDL文件还有一个额外步骤 - 您需要编辑该文件.不幸的是,在64位机器上,用于编辑UDL文件的向导默认为64位,它不会看到JET驱动程序,只是打击它在UDL文件中首先找到的驱动程序.有两种方法可以解决此问题:

  1. 像这样启动32位UDL向导:C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\path\to\your.udl.请注意,我可以在Win7 64 Pro上使用此技术,但它在Server 2008R2上不起作用(可能是我的错,只是提到)
  2. 在记事本或其他文本编辑器中打开UDL文件,它应该或多或少具有以下格式:

[oledb] ; Everything after this line is an OLE DB initstring Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Path\To\The\database.mdb;Persist Security Info=False

这应该允许您的应用程序正确启动.