【发布时间】:2019-11-18 15:45:57
【问题描述】:
我有一个 VB.net 应用程序,我正在尝试升级以使用 企业强制 64 位 Access .accdb 数据源。我已经尝试安装 32 位 AccessDatabaseEngine.exe,但它不会安装,因为机器上有完整的 64 位 Office 安装。 .Net 应用程序不会连接到 64 位 ODBC DSN 或 ACE.OLEDB 提供程序(说它未注册)。 由于包含一些自定义的 32 位 .DLL,我未能成功将此应用程序编译为 x64 应用程序。
有没有办法让 32 位 .Net 应用程序使用 64 位 Access 数据源?
【问题讨论】:
-
在64位系统上安装32位ODBC驱动也是一样的。无法从 64 位应用程序使用 64 位驱动程序。
-
您的应用真的需要 32 位吗? -- Access 没有 64/32 位格式,无论安装什么版本的 Office,文件都是一样的。如果您的应用程序必须是 32 位的,出于某种原因,您有 2 个提供程序:
Microsoft.ACE.OLEDB.12.0和Microsoft.ACE.OLEDB.16.0。查看安装了哪些提供程序并安装另一个的 32 位版本。 -
如果您的应用程序和 Access 驱动程序之间必须具有跨位数,还有一个替代方法:编写一个与 Access 驱动程序具有相同位数的进程外 COM 服务器,并使用 out-进程服务器与数据库通信。 (COM 服务器可以用 VB.NET 编写,附近有微软的示例代码。)