【问题标题】:Compiling OLEDB dependent executables on x64在 x64 上编译 OLEDB 相关的可执行文件
【发布时间】:2026-01-20 13:45:02
【问题描述】:

我在 Windows XP 32 位上编译了使用 Access 数据库引擎库的可执行文件。 在 Win7 x64 操作系统上运行它给我一个错误,即 OLEDB 组件未注册。

我尝试安装 AccessDatabaseEngine x64 并解决了问题。 然而,在另一台安装了 Win7 x64 和 office 2007 32bit 的机器上,它不允许我安装 AccessDatabaseEngine x64,所以我只能在目标机器上编译项目(在 VS2010 c# 中),Env 为 x64,目标 CPU 为x86。这解决了问题。

我的问题是,为什么会这样?这背后的原因是什么?

谢谢。

【问题讨论】:

标签: c# visual-studio linker oledb x86-64


【解决方案1】:

回答你的问题你所说的意味着有一个不同的操作系统,但应该没关系..这里的真正问题是有 2 个不同版本的 Microsoft 安装..你必须要么

  1. GAC 版本或引用目标计算机的版本
  2. 将工作版本中 .DLL 的 Copy Local 设置为 Target 版本。有点像您的 DLL 将驻留在 bin 文件夹所在的 Debug/Bin 或 Debug/Release 文件夹中的位置..

我正在使用 64 位 Windows 7 并将我的工作 dll 复制到 Windows 2003 服务器机器上,我的项目仍然有效..

我的其他解决方法是将目标机器中的 Microsoft.Interop.Access .dll 引用到我的解决方案中,重新编译并 Bam....!

【讨论】: