2

我最近搬到了 64 位操作系统机器。在我用 C# .net 编写的应用程序中,dll 中的代码正在尝试使用 Microsoft.Jet.OLEDB.4.0 驱动程序打开 dbf 文件。我发现 64 位不支持 OLEDB。 参考这个线程

我尝试安装新的 ACE.OLEDB.12.0。首先我安装了 32 位版本的引擎,无法识别并收到此错误消息“Microsoft.ACE.OLEDB.12.0 提供程序未在本地机器上注册”。

所以我尝试从这里安装 ACE.OLEDB 的 64 位版本

现在我面临一个错误,因为我将其他办公产品安装为 32 位办公产品

我该如何解决这个问题?

PS:我尝试将我的解决方案设置为编译到 x86 平台。它抛出了一个 BadImageFormatException。

4

1 回答 1

1

OLEDB 不支持 64 位意味着您无法将其加载到 64 位进程中,但如果您的进程是 32 位,它将在 64 位机器上运行良好。Windows 有一个非常广泛的兼容层,可以让 32 位应用程序在 64 位机器上运行。

如果您的应用程序不需要 64 位功能(正如您的 PS 行所建议的那样),您应该设置编译为 x86 并使用 32 位 Jet 驱动程序。这应该在 32 位和 64 位系统上都可以正常运行。

在 BadImageFormatException 上,您可能尝试将 64 位 dll 加载到 32 位进程中。

于 2011-01-20T16:46:35.567 回答