带有Office 64位的MS Access数据库引擎(32位)

时间:2012-09-04 19:54:18

标签: 32bit-64bit installshield legacy msde

我们目前使用Microsoft Access数据库引擎2010有一个主要问题。引擎有64位和32位格式,这很好。但是,如果主机进程始终为32位,显然您需要始终安装32位版本。好的,我们可以做到这一点。

我们的软件处理许多32位的遗留组件,其中大部分是VB6代码,它生成32位汇编。因此,我们假设驱动程序也必须安装为32位。实际上,当我们在64位计算机上安装32位驱动程序并运行我们的32位应用程序时,它可以正常工作。

但是,在系统上安装Office 2010 64位时,问题就会出现。相信我,我们试图教育用户64位Office在很大程度上是不必要的,但无济于事。随着安装了64位版本的计算机下线,当我们的软件出现故障时,我们无法跟上支持请求。 64位Office破坏了我们的安装,或者我们的安装破坏了他们的Office版本,但它不是两种方式。另一个问题是非传统软件有时会安装64位驱动程序(正如他们应该的那样),并且这两个版本根本不以任何合理的方式共存。我们的软件坏了,或者他们的软件坏了。

那么,有没有人设法找到一种方法让32位驱动程序与64位安装共存?我已经看到安装/passive标志允许安装两个,我们的安装程序确实使用被动。两者都在安装,但一旦在系统上,我们的软件不再工作,或Office不断修复其安装。有没有合理的方法来完成这项工作?

6 个答案:

答案 0 :(得分:28)

以下是在安装了32位MS Office版本的系统上安装64位版本的Microsoft Access数据库引擎2010可重新发布的解决方法:

  • 在安装64位版本的Microsoft Access数据库引擎2010可再发行组件之前,请检查64位注册表项“HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ 14.0 \ Common \ FilesPaths”。
  • 如果它不包含“mso.dll”注册表值,则需要在具有32位的系统上安装64位版本的Microsoft Access数据库引擎2010可重新分发后重命名或删除该值已安装MS Office版本。
  • 使用“/ passive”命令行参数来安装可再发行组件,例如: “C:\ directory path \ AccessDatabaseEngine_x64.exe”/ passive
  • 删除或重命名“mso.dll”注册表值,该值包含64位版本的MSO.DLL的路径(不应由32位MS Office版本使用)。

现在,您可以在没有“重新配置”问题的情况下启动32位MS Office应用程序。 请注意,如果安装了64位版本的MS Office,则“mso.dll”注册表值已存在。在这种情况下,不应删除或重​​命名该值。

此外,如果您不想使用“/ passive”命令行参数,则可以编辑AceRedist.msi文件以删除MS Office体系结构检查:

您现在可以使用此文件在安装了“冲突”版本的MS Office的系统上安装Microsoft Access数据库引擎2010可再发行组件(例如,具有32位MS Office版本的系统上的64位版本) 确保重命名“mso.dll”注册表值,如上所述(如果需要)。

答案 1 :(得分:17)

我讨厌回答我自己的问题,但我终于找到了一个实际可行的解决方案(使用服务之间的套接字通信可以解决问题,但它会产生更多问题)。由于我们的数据库是遗留的,因此它只需要连接字符串中的Microsoft.ACE.OLEDB.12.0。事实证明,这也包含在Office 2007(和MSDE 2007)中,其中只有32位版本可用。因此,我们install MSDE 2007不是安装32位MSDE 2010,而是工作得很好。其他应用程序可以安装64位MSDE 2010(或64位Office 2010),它不会与我们的应用程序冲突。

到目前为止,对于所有Windows操作系统环境来说,这似乎都是可接受的解决方案。

答案 2 :(得分:2)

我有一条更具体的错误消息,声明要删除' Office 16即点即用可扩展性组件'

我按照https://www.tecklyfe.com/fix-for-microsoft-office-setup-error-please-uninstall-all-32-bit-office-programs-office-15-click-to-run-extensibility-component/

中的步骤修复了它
  • 转到开始>运行(或Winkey + R)
  • 键入“installer”(打开%windir%安装程序文件夹),确保所有文件在Windows中可见(文件夹设置)
  • 添加“主题”列(并使其至少宽400像素) - 右键单击​​列标题,单击“更多”,然后查找“主题”
  • 在“主题”列上排序并向下滚动,直到找到错误屏幕中提到的名称(“Office 16即点即用可扩展性组件”)
  • 右键单击MSI并选择卸载

答案 3 :(得分:1)

与@Peter Coppins类似的方法回答。我认为这有点容易,不需要使用Orca实用程序:

  1. 检查“HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ 14.0 \ Common \ FilesPaths”注册表项,并确保不存在值“mso.dll”。如果它存在,那么似乎安装了Office 64位,您不需要这种解决方法。

  2. 下载Microsoft Access Database Engine 2010 Redistributable

  3. 从命令行运行:AccessDatabaseEngine_x64.exe / passive

  4. (注意:这个安装程序为我默默地崩溃或失败,所以我解压缩组件并运行:AceRedist.msi / passive并且安装得很好。也许是Windows 10的东西。)

    1. 删除或重命名“HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Office \ 14.0 \ Common \ FilesPaths”键中的“mso.dll”值。
    2. 来源:How to install 64-bit Microsoft Database Drivers alongside 32-bit Microsoft Office

答案 4 :(得分:0)

如果两个版本的Microsoft Access数据库引擎2010无法共存,那么您唯一的解决方案是向Microsoft投诉,关于在32位应用程序中加载64位版本是不可能直接进行的,您可以做的是服务以64位运行,通过管道或网络套接字与另一个32位服务或您的应用程序通信,但可能需要付出巨大努力。

答案 5 :(得分:0)

就我而言,甚至尝试了所有建议(Office x64-Visual Studio 2017),这是在Office 64x安装中同时具有两个访问引擎的唯一方法,因此您可以在Visual Studio上使用它并使用Office的2016+版本将安装Engine的2010版本。

首先从此页面安装x64

https://www.microsoft.com/en-us/download/details.aspx?id=54920

,然后是此版本的x86版本

https://www.microsoft.com/en-us/download/details.aspx?id=13255

来自此博客:http://dinesql.blogspot.com/2017/10/microsoft-access-database-engine-2016-Redistributable-Setup-you-cannot-install-the-32-bit-version-You-cannot-install-the-64-bit-version.html