C# 在x64上编译OLEDB相关的可执行文件

C# 在x64上编译OLEDB相关的可执行文件,c#,visual-studio,linker,oledb,x86-64,C#,Visual Studio,Linker,Oledb,X86 64,我编译了在WindowsXP32位上使用Access数据库引擎库的可执行文件。 在Win7 x64操作系统上运行该操作会给我一个错误,即OLEDB组件未注册 我尝试安装AccessDatabaseEngine x64,它解决了这个问题。 然而,在另一台安装了Win7 x64和office 2007 32位的机器上,它不允许我安装AccessDatabaseEngine x64,因此我只能在目标机器上(在VS2010 c#)编译项目,环境为x64,目标CPU为x86。这解决了问题 我的问题是,为什

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

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

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


谢谢。

回答你的问题你说的是什么意味着有一个不同的操作系统,但不重要。。这里真正的问题是安装了两个不同版本的Microsoft。。你要么

  • GAC目标计算机的版本或引用版本
  • 将工作版本中.DLL的本地副本设置为目标版本。。有点像DLL位于调试/Bin或调试/Release文件夹中的位置,Bin文件夹位于该文件夹中 我正在使用64位Windows 7,并将我的工作dll复制到Windows 2003服务器计算机上,我的项目仍然有效


    我的另一个解决方法是将目标计算机上的Microsoft.Interop.Access.dll引用到我的解决方案中,重新编译并Bam

    你所说的问题的答案意味着一个人有不同的操作系统,但这并不重要。。这里真正的问题是安装了两个不同版本的Microsoft。。你要么

  • GAC目标计算机的版本或引用版本
  • 将工作版本中.DLL的本地副本设置为目标版本。。有点像DLL位于调试/Bin或调试/Release文件夹中的位置,Bin文件夹位于该文件夹中 我正在使用64位Windows 7,并将我的工作dll复制到Windows 2003服务器计算机上,我的项目仍然有效

    我的另一个解决方法是将目标计算机上的Microsoft.Interop.Access.dll引用到我的解决方案中,重新编译并Bam