带有 Office 64 位的 MS Access DB 引擎(32 位) [英] MS Access DB Engine (32-bit) with Office 64-bit

查看:26
本文介绍了带有 Office 64 位的 MS Access DB 引擎(32 位)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们目前在使用 Microsoft Access Database Engine 2010 时遇到了一个主要问题.该引擎有 64 位和 32 位两种形式,这很好.但是,如果主机进程始终为 32 位,显然您需要始终安装 32 位版本.很好,我们可以做到.

We currently have a major issue using Microsoft Access Database Engine 2010. The engine comes in 64-bit and 32-bit forms, which is good. However, apparently you need to always install the 32-bit version if the host process is always 32-bit. Fine, we can do this.

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

Our software deals with a lot of legacy components that are 32-bit, and much of it is in VB6 code, which generates 32-bit assembly. So, we are under the assumption that the driver must also be installed as 32-bit. Indeed, when we install 32-bit drivers on a 64-bit machine, and run our 32-bit applications, it works correctly.

但是,当系统上安装了 Office 2010 64 位时,问题就开始了.相信我,我们已经尝试教育用户 64 位 Office 在很大程度上是不必要的,但无济于事.由于安装了 64 位版本的计算机下线,当我们的软件出现故障时,我们无法跟上支持请求.要么 64 位 Office 破坏了我们的安装,要么我们的安装破坏了他们的 Office 版本,但这两种方式都不太好.另一个问题是非遗留软件有时会安装 64 位驱动程序(它们应该安装),并且这两个版本根本不会以任何合理的方式共存.要么我们的软件坏了,要么他们的软件坏了.

However, the problem begins when Office 2010 64-bit is installed on the system. Trust me, we've tried to educate users that 64-bit Office is largely unnecessary, to no avail. As computers come off the assembly line with 64-bit versions installed, we're unable to keep up with support requests when our software breaks something. Either the 64-bit Office breaks our installation, or our installation breaks their Office version, but it's not pretty either way. A further issue is that non-legacy software will sometimes install the 64-bit drivers (as they should), and the two versions simply do not coexist in any reasonable manner. Either our software breaks, or their software breaks.

那么,有没有人设法让 32 位驱动程序与 64 位安装共存?我已经看到使用 /passive 标志安装允许安装两者,并且我们的安装程序确实使用了被动.两者都正在安装,但一旦在系统上,要么我们的软件不再运行,要么 Office 不断修复其安装.有什么合理的方法可以使这项工作正常进行吗?

So, has anybody managed to find a way to make the 32-bit drivers coexist with 64-bit installations? I have seen that installing with /passive flag allows the two to be installed, and our installer does use passive. Both are being installed, but once on the system either our software no longer works, or Office constantly repairs its installation. Is there any reasonable way to make this work?

推荐答案

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

I hate to answer my own questions, but I did finally find a solution that actually works (using socket communication between services may fix the problem, but it creates even more problems). Since our database is legacy, it merely required Microsoft.ACE.OLEDB.12.0 in the connection string. It turns out that this was also included in Office 2007 (and MSDE 2007), where there is only a 32-bit version available. So, instead of installing MSDE 2010 32-bit, we install MSDE 2007, and it works just fine. Other applications can then install 64-bit MSDE 2010 (or 64-bit Office 2010), and it does not conflict with our application.

到目前为止,这似乎是适用于所有 Windows 操作系统环境的可接受的解决方案.

Thus far, it appears this is an acceptable solution for all Windows OS environments.

这篇关于带有 Office 64 位的 MS Access DB 引擎(32 位)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆