5

私は 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 オプション?

4

2 に答える 2

3

ODBC ドライバーの 64 ビット バージョンをダウンロードする必要があります(アクセスと表示されますが、Excel ドライバーも含まれます)。

32 ビットと 64 ビットの両方を同時にインストールすることはできないというエラーが表示される可能性があります。これを回避するには、/passive フラグを使用する必要があります。

Office 2010 64 ビットを実行しているマシンに Microsoft ACE OLEDB Provider 32 ビットをインストールするには:

  • AccessDatabaseEngine.exe /passive

Office 2010 32 ビットを実行しているマシンに Microsoft ACE OLEDB Provider 64 ビットをインストールするには、次の手順を実行します。

  • AccessDatabaseEngine_X64.exe /passive
于 2013-02-04T22:05:48.027 に答える
0

AccessDatabaseEngine COM オブジェクトの代わりに、ODBC を使用して Excel と通信できます。これにより、32/64 ビットの問題がスキップされます。

于 2013-02-04T22:04:07.437 に答える