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



我有一个Windows 64位系统和一个C#应用程序,它使用OleDbConnection通过32位版本的AccessDatabaseEngine.exe COM组件读取Excel数据,因为我安装了Office 32位(根据MSFT的建议),而64位版本的Access DatabaseEngine无法与32位Office一起工作。

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

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

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

MSFT没有仔细考虑。我应该能够以某种方式构建一个可以同时使用32位和64位版本的Office的应用程序。我可以以某种方式使用OleDbConnection吗?

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

有什么想法吗?修复?应用程序配置选项?

您需要下载64位版本的ODBC驱动程序(它表示访问,但也表示excel驱动程序)。

你可能会收到一个错误,说你不能同时安装32位和64位,要绕过这个问题,你必须使用/passive标志

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

  • AccessDatabaseEngine.exe/passive

要在运行Office 2010 32位的计算机上安装Microsoft ACE OLEDB Provider 64位:

  • AccessDatabaseEngine_X64.exe/passive

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

相关内容

  • 没有找到相关文章

最新更新