2

短くて甘い:

  • アプリはx86マシンでは動作しますが、x64では動作しません(2008サーバーとWindows 8で試してみました)
  • Microsoft Access Database Engine 2010は既にインストールされています(Microsoft Office 2007 Access Database Engineもインストールされています)
  • MSOfficeがインストールされていません
  • C:\ Program Files(x86)\ Common Files \ microsoft shared \ OFFICE12\ACEOLEDB.DLLの存在を確認しました

コード:

string conn = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;";
OleDbConnection _connOle = new OleDbConnection(conn);

このアプリをx64マシンで動作させるために私がすべきことはありますか?ありがとう!

4

2 に答える 2

3

私はあなたの問題を説明できる2つのシナリオを考えることができます:

  1. C#プロジェクトは64ビットと32ビットの両方のプラットフォームをターゲットにするように設定されており、64ビットマシンには32ビットバージョンのAccessDatabaseEngineのみがインストールされています。プログラムは64ビットとして実行されているが、マシンが欠落しているため、参照は失敗します

    C:\ Program Files \ Common Files \ Microsoft Shared \ OFFICE14 \ ACEOLEDB.DLL

  2. C#プロジェクトは32ビットプラットフォームのみ(x86)をターゲットにするように設定されており、64ビットマシンには64ビットバージョンのAccessDatabaseEngineのみがインストールされています。プログラムは32ビットとして実行されているが、マシンが欠落しているため、参照は失敗します

    C:\ Program Files(x86)\ Common Files \ microsoft shared \ OFFICE14 \ ACEOLEDB.DLL

Access Database Engineの64ビットバージョンのインストーラーは、64ビットバージョンのみをインストールし、両方はインストールしないことに注意してください。

于 2013-03-21T12:11:30.750 に答える