我在 Windows XP 32 位上编译了使用 Access 数据库引擎库的可执行文件。 在 Win7 x64 操作系统上运行它给我一个 OLEDB 组件未注册的错误。
我尝试安装 AccessDatabaseEngine x64,它解决了问题。 然而,在另一台安装了 Win7 x64 和 Office 2007 32 位的机器上,它不允许我安装 AccessDatabaseEngine x64,所以我只能在该目标机器上(在 VS2010 c# 中)编译项目,Env 为 x64, objective-c PU 为x86。这解决了问题。
我的问题是,为什么这样做有效?这背后的原因是什么?
谢谢。
最佳答案
回答你的问题你所说的意味着有一个是不同的操作系统但应该无关紧要..这里真正的问题是安装了 2 个不同版本的 Microsoft..你必须要么
- GAC 版本或引用目标机器的版本
- 将工作版本中的 .DLL 的本地复制设置为目标版本。有点像您的 DLL 位于 bin 文件夹所在的 Debug/Bin 或 Debug/Release 文件夹中的位置。
我在 Windows 7 64 位上工作,并将我的工作 dll 复制到 Windows 2003 服务器机器上,我的项目仍然可以工作..
我的其他工作是将目标机器中的 Microsoft.Interop.Access .dll 引用到我的解决方案中,重新编译并 Bam....!
关于c# - 在 x64 上编译 OLEDB 依赖的可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8855779/