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

Dav*_*ave 5 .net oledbconnection ms-office 32bit-64bit

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

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

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

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

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

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

有任何想法吗?修复?App.Config选项?

Sam*_*Axe 0

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