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

如何使用32位和64位Office运行.NET应用程序?,.net,ms-office,32bit-64bit,oledbconnection,.net,Ms Office,32bit 64bit,Oledbconnection,我有一个Windows 64位系统和一个C#应用程序,它使用OLEDB连接通过32位版本的AccessDatabaseEngine.exe组件读取Excel数据,因为我安装了Office 32位(根据MSFT的建议),并且64位版本的AccessDatabaseEngine不能与32位Office一起工作 为了让我的C#应用程序正常工作,我必须在项目构建设置中设置“首选32位”。这将设置编译器/平台anycpu32bitpreferred标志。在英特尔平台上,这一点没有“首选” 所以一切都很顺利

我有一个Windows 64位系统和一个C#应用程序,它使用OLEDB连接通过32位版本的AccessDatabaseEngine.exe组件读取Excel数据,因为我安装了Office 32位(根据MSFT的建议),并且64位版本的AccessDatabaseEngine不能与32位Office一起工作

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

所以一切都很顺利。在我的机器上。不是在我老板安装64位Office的64位机器上

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

MSFT并没有考虑清楚这一点。我应该能够以某种方式构建一个可以同时使用32位和64位版本Office的应用程序。我可以使用OLEDB连接吗

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


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

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

您需要下载ODBC驱动程序(上面说的是access,但也有excel驱动程序)

您可能会得到一个错误,说您不能同时安装32位和64位,要解决这个问题,您必须

要在运行Office 2010 64位的计算机上安装32位Microsoft ACE OLEDB提供程序,请执行以下操作:

  • AccessDatabaseEngine.exe/被动
要在运行Office 2010 32位的计算机上安装64位Microsoft ACE OLEDB提供程序,请执行以下操作:

  • AccessDatabaseEngine_X64.exe/被动

请参阅此处了解在同一台机器上同时安装32位和64位驱动程序的著名“/被动”技巧:哇!我希望我在一年前就知道这一点,当时我正试图找出如何用64位office实现32位。谢谢,我已经从那个网站上更新了我的答案和详细信息。很抱歉回复太晚,我没有收到任何通知。如果我添加64位驱动程序,它会与32位版本的Office对话吗?否则就没用了。谢谢,DaveI安装了带有/passive选项的64位软件包,这似乎使我的系统不再需要“首选32位”选项来让我编译为CPU的应用程序与32位Excel对话。等待老板的反馈,如果可以的话,这就是答案。谢谢,戴维奥克,很好用,谢谢!为什么MSFT会在没有/被动安装的情况下发出可怕的警告???他们应该只说安装另一个或使用/被动如果你必须!顺便说一句,这在没有被动的情况下是行不通的,因为我需要一个64位(任何)应用程序来连接一台机器上的32位Office和另一台机器上的64位Office,这两台机器都是64位的。谢谢,但我不想使用ODBC。