我有一个 Windows 64 位系统和一个 C# 应用程序,它使用 OleDbConnection 通过 32 位版本的 AccessDatabaseEngine.exe 组件读取 Excel 数据,因为我安装了 Office 32 位(按照 MSFT 的建议),而 64 位版本的 AccessDatabaseEngine 将不起作用与 32 位办公室。
为了让我的 C# 应用程序正常工作,我必须在项目构建设置中设置“首选 32 位”。这将设置编译器 /platform anycpu32bitpreferred 标志。在英特尔平台上没有“首选”。
所以一切运行良好。在我的机器上。不在我老板的 64 位机器上,他安装了 64 位 Office。
我找不到任何 app.config 选项来强制 64 位。有吗?在 .NET 加载序列中理论上是否可能存在一个?
MSFT 没有考虑到这一点。我应该能够以某种方式构建一个可以与 32 位和 64 位版本的 Office 一起使用的应用程序。我可以以某种方式使用 OleDbConnection 吗?
我知道 CorFlags.exe /32bitpref- 标志,但这需要维护两个版本的二进制文件。
有任何想法吗?修复?App.Config 选项?