.NET应用程序如何运行32位和64位Office?

时间:2013-02-04 18:31:21

标签: .net ms-office 32bit-64bit oledbconnection

我有一个Windows 64位系统和一个C#应用程序,它使用OleDbConnection通过32位版本的AccessDatabaseEngine.exe COMponents读取Excel数据,因为我安装了Office 32bit(由MSFT推荐)和64位版本的AccessDatabaseEngine不适用于32位Office。

为了让我的C#应用​​程序正常工作,我不得不在项目构建设置中设置“Prefer 32-bit”。这将设置编译器/平台anycpu32bitpreferred标志。在英特尔平台上没有“首选”。

所以一切都运行良好。在我的机器上。不是我老板的64位机器,他安装了64位Office。

我找不到任何强制64位的app.config选项。有吗?理论上在.NET加载序列中是否可以存在一个?

MSFT没有想到这一点。我应该能够以某种方式构建一个可以与32位和64位版本的Office一起使用的应用程序。我可以以某种方式使用OleDbConnection吗?

我知道CorFlags.exe / 32bitpref-标志,但这需要维护两个版本的二进制文件。

有什么想法吗?修复? App.Config选项?

2 个答案:

答案 0 :(得分:3)

您需要下载the 64 bit version的ODBC驱动程序(它表示访问权限,但它确实也是excel驱动程序)。

您可能会收到一条错误消息,指出您无法同时安装32位和64位,为了解决此问题,您必须use the /passive flag

  

在运行Office 2010 64位的计算机上安装32位Microsoft ACE OLEDB提供程序:

     
      
  • AccessDatabaseEngine.exe / passive
  •   
     

在运行Office 2010 32位的计算机上安装64位Microsoft ACE OLEDB提供程序:

     
      
  • AccessDatabaseEngine_X64.exe / passive
  •   

答案 1 :(得分:0)

您可以使用ODBC与Excel通信,而不是与AccessDatabaseEngine COM对象通信。这将跳过32/64位问题。