私は Windows 64 ビット システムと、Office 32 ビットがインストールされているため (MSFT の推奨に従って)、OleDbConnection を使用して 32 ビット バージョンの AccessDatabaseEngine.exe コンポーネントを介して Excel データを読み取る C# アプリを使用しています。 32ビットオフィスで。
C# アプリを動作させるには、プロジェクトのビルド設定で「32 ビットを優先」を設定する必要がありました。これにより、コンパイラの /platform anycpu32bitpreferred フラグが設定されます。Intel プラットフォームでは、これについて「推奨」はありません。
したがって、すべてが正常に実行されます。私のマシンで。彼が64ビットOfficeをインストールした上司の64ビットマシンではありません。
64 ビットを強制する app.config オプションが見つかりません。ありますか?理論的には、.NET ロード シーケンスに存在する可能性はありますか?
MSFT はこれをよく考えていませんでした。Office の 32 ビット バージョンと 64 ビット バージョンの両方で動作するアプリを構築できるはずです。どうにかして OleDbConnection を使用できますか?
CorFlags.exe /32bitpref- フラグについては知っていますが、これには 2 つのバージョンのバイナリを維持する必要があります。
何か案は?修正?App.Config オプション?