2012-01-13 74 views
2

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

我试着安装AccessDatabaseEngine x64,它解决了这个问题。 但是,在安装了Win7 x64和office 2007 32位的另一台计算机上,它不会让我安装AccessDatabaseEngine x64,因此我只能在该目标计算机上编译该项目(在VS2010 c#中),将Env作为x64和目标CPU作为x86。这解决了这个问题。

我的问题是,这是为什么这样工作?这背后的理由是什么?

谢谢。

+0

http://blogs.msdn.com/b/psssql/archive/2011/10/03/yes-we-made-a-mistake-and-are-finally-going-to-fix-it.aspx – 2012-01-17 21:42:58

回答

0

回答你的问题你所陈述的手段,有一个是一个不同的操作系统,但不应该的问题。这里真正的问题是,有安装了2个不同版本的Microsoft的..你就必须要么

  1. GAC版本或参考.dll文件的目标机器
  2. 设置复制本地的工作版本到目标版本的版本..有点像在您的DLL将驻留在调试/箱或调试/放置bin文件夹所在的文件夹..

我正在使用Windows 7 64位,并将我的工作DLL复制到Windows 2003服务器计算机上,并且我的项目仍在工作。

我的其他工作是引用Microsoft.Interop.Access .dll中的将机器锁定到我的解决方案,重新编译和Bam ....!

相关问题