46

現在、Microsoft Access データベース エンジン 2010 を使用する際に大きな問題があります。エンジンには 64 ビットと 32 ビットの形式があり、これは優れています。ただし、ホスト プロセスが常に 32 ビットの場合は、常に 32 ビット バージョンをインストールする必要があるようです。よし、できる。

私たちのソフトウェアは、32 ビットの多くのレガシー コンポーネントを扱っており、その多くは 32 ビット アセンブリを生成する VB6 コードにあります。そのため、ドライバーも 32 ビットとしてインストールする必要があると想定しています。実際、32 ビット ドライバーを 64 ビット マシンにインストールし、32 ビット アプリケーションを実行すると、正しく動作します。

ただし、Office 2010 64 ビットがシステムにインストールされている場合に問題が発生します。信じてください。私たちは、64 ビット Office はほとんど不要であることをユーザーに教育しようとしましたが、役に立ちませんでした。64 ビット バージョンがインストールされた状態でコンピューターが組み立てラインから出荷されると、ソフトウェアが何かを壊したときに、サポート リクエストに対応できなくなります。64 ビットの Office がインストールを中断するか、インストールが Office のバージョンを中断するかのいずれかですが、どちらにしてもきれいではありません。さらなる問題は、非レガシー ソフトウェアが 64 ビット ドライバをインストールする場合があり (当然のことですが)、2 つのバージョンが適切な方法で共存できないことです。私たちのソフトウェアが壊れるか、彼らのソフトウェアが壊れます。

では、32 ビット ドライバーを 64 ビット インストールと共存させる方法を見つけた人はいますか? フラグを付けてインストールすると/passive、2 つをインストールできるようになり、インストーラーはパッシブを使用することがわかりました。どちらもインストールされていますが、システムにインストールされると、ソフトウェアが機能しなくなるか、Office がインストールを常に修復します。これを機能させる合理的な方法はありますか?

4

7 に答える 7

33

32 ビットの MS Office バージョンがインストールされているシステムに、64 ビット バージョンの Microsoft Access データベース エンジン 2010 再頒布可能パッケージをインストールするための回避策を次に示します。

  • Microsoft Access データベース エンジン 2010 再頒布可能パッケージの 64 ビット バージョンをインストールする前に、64 ビット レジストリ キー "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths" を確認してください。
  • 「mso.dll」レジストリ値が含まれていない場合は、32 ビット バージョンの MS を搭載したシステムに再配布可能な Microsoft Access データベース エンジン 2010 の 64 ビット バージョンをインストールした後で、値の名前を変更するか、値を削除する必要があります。オフィスを設置。
  • 「/passive」コマンド ライン パラメーターを使用して再配布可能ファイルをインストールします (例: 「C:\directory path\AccessDatabaseEngine_x64.exe」/passive)。
  • MSO.DLL の 64 ビット バージョンへのパスを含む "mso.dll" レジストリ値を削除または名前変更します (32 ビット MS Office バージョンでは使用しないでください)。

「再構成」の問題なしに、32 ビットの MS Office アプリケーションを起動できるようになりました。MS Office の 64 ビット バージョンがインストールされている場合は、"mso.dll" レジストリ値が既に存在することに注意してください。この場合、値を削除したり、名前を変更したりしないでください。

また、「/passive」コマンド ライン パラメータを使用したくない場合は、AceRedist.msi ファイルを編集して、MS Office アーキテクチャ チェックを削除できます。

  • Microsoft Orca をダウンロードしてインストールします: http://msdn.microsoft.com/en-us/library/windows/desktop/aa370557(v=vs.85).aspx
  • AccessDatabaseEngine.exe または AccessDatabaseEngine_x64.exe ファイルを解凍します。
  • Orca で AceRedist.msi ファイルを開きます。
  • 「CheckOfficeArchitecture」アクションを含む 2 つのテーブル行を検索し、これらの行を削除します
  • 更新された AceRedist.msi ファイルを保存します

このファイルを使用して、「競合する」バージョンの MS Office がインストールされているシステムに Microsoft Access データベース エンジン 2010 再頒布可能パッケージをインストールできます (たとえば、32 ビット MS Office バージョンのシステムに 64 ビット バージョン)。上記で説明した "mso.dll" レジストリ値 (必要な場合)。

于 2013-02-20T14:33:02.033 に答える
20

私は自分の質問に答えるのが嫌いですが、最終的に実際に機能する解決策を見つけました (サービス間のソケット通信を使用すると問題が解決する場合がありますが、さらに多くの問題が発生します)。Microsoft.ACE.OLEDB.12.0私たちのデータベースはレガシーであるため、接続文字列で必要なだけです。これは、Office 2007 (および MSDE 2007) にも含まれていたことが判明しました。Office 2007 では、32 ビット バージョンしか利用できません。したがって、MSDE 2010 32 ビットをインストールする代わりに、MSDE 2007をインストールすると、問題なく動作します。その後、他のアプリケーションは 64 ビットの MSDE 2010 (または 64 ビットの Office 2010) をインストールできますが、このアプリケーションと競合することはありません。

これまでのところ、これはすべての Windows OS 環境で受け入れられるソリューションのようです。

于 2012-09-17T14:14:45.900 に答える
1

2007年版をインストールして、使用しているOfficeのバージョンと逆のバージョンをインストールすれば動作するようです。

http://www.microsoft.com/en-us/download/details.aspx?id=23734

于 2015-08-16T06:42:44.717 に答える
0

Microsoft Access データベース エンジン 2010 の両方のバージョンが共存できない場合、唯一の解決策は、32 ビット アプリにこれの 64 ビット バージョンを直接ロードすることは不可能であると Microsoft に訴えることです。パイプまたはネットワークソケットを介して別の 32 ビットサービスまたはアプリケーションと通信する 64 ビットですが、かなりの労力が必要になる場合があります。

于 2012-09-14T19:52:54.530 に答える