我有一个 x64 应用程序,它使用 Microsoft.ACE.OLEDB.12.0 提供程序来读取 Windows 7 (x64) 上的 MS Access 数据库,它工作正常(安装了 Office 2010)。
在安装了 Office 2013 的 Windows 8 下运行的同一应用程序失败,并显示一条消息,指出提供程序无法打开以前的版本。
在安装了 Office 2013 的 Windows 8 下,还有 Microsoft.ACE.OLEDB.15.0,但我仔细检查了我的代码并确定它在连接字符串中指定了 12.0。
该提供程序是否有不同的“版本” - 或者我错过了什么?
我已经在 Windows 8 下重新编译了一个使用 x86 平台的测试程序,并将提供程序更改为 Microsoft.Jet.OLEDB.4.0 并且一切正常。不幸的是,该模块是一个更大的生态系统的一部分,需要能够在 x64 下运行(特别是 excel 的插件),并且访问数据库是由套件通过应用程序从供应商的网站下载的,所以它是将数据库转换或将所有内容更改为 x86 是不切实际的。
提前致谢。